2010-10-12 2 views
1

Я пытаюсь использовать beanstalk для очередей большого количества периодических задач (например, задачи должны обрабатываться каждые N минут), для каждой задачи , если последнее задание в очереди не завершено (не зарезервировано, я имею в виду) когда текущее задание должно быть добавлено, последнее задание в очереди должно быть заменено текущим заданием, другими словами, должно обрабатываться только последнее задание в задаче .Используйте beanstalkd для периодических задач, как всегда заменить работу на последнюю?

Как я могу достичь этого, используя beanstalk?

Идеи у меня прямо сейчас: для каждой задачи, использовать Memcached хранилище свои последние метки времени (установите этот когда добавить работу в очередь), каждый раз, когда работник успешно зарезервированную работу, он сначала проверяет временные метки для эта задача в memcached, , если временные метки задания совпадают с метками времени в memcached, тогда обработать это задание, в противном случае пропустить это задание и удалить его из очереди.

Так есть ли лучшие способы сделать такую ​​работу? пожалуйста, дайте свои предложения, спасибо.

ответ

1

До тех пор пока не будет «named jobs» и выпущено программное обеспечение, которое может быть одним из лучших решений.

2

Я нашел комбинацию memcache/beanstalk, также лучшее решение для реализации, где я не хотел, чтобы новое, но идентичное задание вводило очередь.