В настоящее время у меня есть список серверов / сайтов, которые мне нужно отслеживать, раз в минуту.
Есть ли хороший способ циклически проходить через них каждую минуту, с возможностью добавлять / удалять серверы / сайты в любой момент?
Я изучил RabbitMQ, но не представляется возможным последовательно добавлять и потреблять задачу каждую минуту. Задачи хранятся в MongoDB, возможно, другое решение, о котором я подумал, — это запрос через MongoDB, но это не очень эффективно.
Я не думаю, что брокер сообщений был бы необходим. Что бы я сделал, это на самом деле получить задачи из базы данных и сохранить их в памяти в начале программы. Создайте класс задач и для каждой задачи в базе данных скопируйте его в классе задач и сохраните все эти объекты задачи в массиве задач.
Храните этот список серверов / веб-сайтов в базе данных.
Попросите вашу программу запрашивать список серверов / веб-сайтов из этой базы данных каждую минуту, чтобы получить последний список серверов / веб-сайтов. Вы всегда можете зайти в свою базу данных и удалить или добавить серверы / сайты.
Предполагая, что вы хотите выполнить все задачи для каждого сервера / веб-сайта, вы в основном выполняете все задачи в массиве задач для каждого. По сути это цикл for внутри другого цикла for.
Если это предположение неверно, вы понимаете, что я имею в виду.
Надеюсь это поможет.
Других решений пока нет …