Шаблон проектування для черги - stack overflow російською

Що потрібно реалізувати: сформувати чергу завдань і виконати їх.

Завдання можуть бути різними. Характеризуються класом, методом і параметрами для цього методу. Наприклад, завдання ( "архіватор", "додати файл-в-архів", "назва_пакунка-архіву, назва_пакунка").







Виконання може бути перервано і потім продовжено, наприклад, відведений час на ітерацію закінчилося і треба перезапуститися.

Які шаблони проектування порадите подивитися?

Сенс черг зводитися до простого обміну повідомлень між процесами. Тобто один процес відправляє повідомлення з даними про завдання, а інший чекає повідомлення, і як тільки воно надходить - виконує завдання, яке описано в повідомленні. Після цього може відправити повідомлення першого процесу про те, що завдання виконано. Зазвичай є клієнт, сервер і Воркер. Клієнт додає завдання, сервер отримує його і віддає потрібного Воркер, який його виконує. Для організації такого обміну існує багато рішень, серед яких: Gearman, RabbitMQ, ActiveMQ, Amazon SQS (хмарний сервіс черг).







Використовую Gearman на своїх проектах. Клієнт може додати завдання для виконання як у фоновому режимі, так і чекати його виконання і відстежувати статус. За gearman багато інформації в інтернеті, і існують клієнти практично для всіх популярних мов програмування. Поки нарікань не було, працює дуже швидко і стабільно.

Рішень для організації черг досить. Що використовувати - скоріше справа смаку. У всього є свої плюси і мінуси. Гуглити в сторону "Queue", "Message Queue". Якщо зупиніться на gearman зможу допомогти в установці та налаштування.







Схожі статті