У меня есть сообщения внутри amazon SQS. для некоторых сообщений мне нужно выполнить задержку в шесть часов, прежде чем я смогу начать работать над ними (задержка - это предоставление). один решение будет Thread.Sleep(6h)
. Мне не нравится это решение, потому что я боюсь, что что-то случится с потоком, и я потеряю данные. другим решением будет прочитать сообщение, если прошло 6 часов, а если не вернуть сообщение в очередь. снова мне это не нравится, потому что процедура будет много. Есть ли лучшее решение?Задержка задания в AWS
1
A
ответ
0
Можете ли вы создать отдельные множественные очереди и поместить элементы очереди отдельно.
Пример 1:
Вы можете иметь 6 очередей, как Queue0, queue1, Queue2, Queue3, Queue4, Queue5 и использовать хэш-функцию, как хэш (х) = ток-час% 6 - эта функция вернет значения от 0 до 5, и вы можете поместить элементы в Queue_f (x) и прочитать очереди в зависимости от текущего времени.
Пример 2:
Если текущее время 01:00 часов вы можете создать отдельные очереди, как Queue0700Hours, если текущее время 02:00 часов вы можете создать еще одну новую очередь как Queue0800Hours как мудрый и иди.
Таким образом, вы отключаете необходимость ждать/останавливать обработку и собирать производителей и потребителей самостоятельно на основе текущей метки времени.
Смежные вопросы
- 1. Задержка задания расколотого задания
- 2. Задержка отложенного задания DB
- 3. Задержка задания массива qsub
- 4. Задержка обработки AWS SES
- 5. Задержка задания в приложении jsp/servlet
- 6. Как вызвать redirect_to в Задержка задания
- 7. Задержка задания: сконфигурируйте run_at и max_attempts для определенного задания
- 8. Запланированные задания с использованием AWS
- 9. Задержка и пробуждение задания от выполнения? (Task.Delay?)
- 10. Ошибка чтения файла при использовании Задержка задания
- 11. laravel 5.1 Задержка задания очереди не работает
- 12. Задержка задания Capistrano без перезапуска каждый раз
- 13. Задержка задания - Поиск по объекту id
- 14. Исходные задания AWS/EBS в рельсах
- 15. Настройка задания Cron в экземпляре AWS EC2
- 16. Выполнение Задержка задания и работа cron в Heroku
- 17. Задержка задания run_at не работает в правильное время
- 18. Печать Задержка задания при использовании IPP для узла JS
- 19. Задержка задания для ASP.NET для запуска асинхронного кода?
- 20. Ruby on Rails - Задержка задания - Вернуться к заданию id
- 21. Задержка задания: как получить и обновить запланированное задание?
- 22. Задержка работы: Установить максимальное время выполнения задания, а не работник
- 23. Задержка задания: применить несохраненный объект ActiveRecord к чему-то еще
- 24. Задержка задания - неопределенный метод `имя 'для nil: NilClass
- 25. Задержка при удалении одного объекта в aws s3
- 26. Двойное выполнение (2 потока) задания Spring cron в AWS Beanstalk
- 27. Задержка работы: Задержка задачи работы висит
- 28. Задержка на aws (m1.large) с MongoDB 64b 2.x
- 29. AWS SQS: Задержка предоставление сообщения, которые не удалось обработать
- 30. Извлечь файл и файл эскиза из задания AWS Elastic Transcoder
Я думал о создании другой выделенной очереди. Я надеялся, что смогу избежать этого. Не существует ли из коробки решение Amazon обеспечивает задержку сообщения в течение нескольких часов? – Tsahi
Непосредственный способ будет напоминать добавление элементов в очередь и немедленное чтение их другим процессом. Установите очередь ожидания тайм-аута видимости 6 часов. Таким образом, элемент очереди будет выбран, как только он будет нажат, и когда элемент будет выбран - он появится снова через 6 часов. Чтобы обеспечить и уверенно обрабатывать предметы через 6 часов, вы увидите, что число повторных попыток равно 1. –