2010-12-03 3 views
3

В Google App Engine, для задачи, как сканирование некоторых RSS-каналов и добавления новых записей из канала в хранилище каждые 10-15 секунд, я должен использовать Cron Jobs, Task Queue или Deferred Tasks? Я действительно смущен.Работы Cron, Очередь задач или отложенные задачи?

+0

Зачем вам так часто вставлять данные? – 2010-12-03 21:19:10

+0

@ Адам Матан: Что не так с этим? – 2010-12-03 21:21:10

+2

Ничего страшного, просто любопытно - довольно редко читать фид `RSS` так часто, и он может заблокировать вас, как будто вы DDOS-канал. – 2010-12-03 21:27:52

ответ

0

Вызовите работу cron каждые 1 минуту, чтобы получить RSS и спящий на 15 секунд четыре раза. Вы можете блокировать, чтобы предотвратить перекрытие (хотя вставка базы данных обеспечивает некоторую меру контроля параллелизма).

Python, как псевдо-код:

if cant_get_lock: 
    exit 
else: 
for i in (1,2,3,4): 
    get RSS 
    sleep 15 seconds 
0
  • Я думаю, если это происходит каждые 15 секунд (не пропуская), чем я бы хрон рабочих мест , потому что проще всего реализации. Но если вам нужно отменить задачу, то вы должны использовать задачу queue.
  • BTW вы должны использовать PubSubHubbub (hubbub) до получать обновления для лент в в реальном времени, если я вас понимаю правильно.
Смежные вопросы