2012-02-20 10 views
0

サブスクリプションに基づいてユーザーにSMSを送信する組織で働いています。私のスタックにはDjango、Celery、Redis、RabbitMQ、PostgreSQL、Apache、nginx、Kannelがあります。この環境では、すべてのSMSサービスプロバイダは、SMSを送信できる一定の期間を持っています。セロリタスクを一定期間実行するようにスケジュールできますか?

キャリアウェブサービスへの請求リクエストを行うセロリタスクがあるとします。請求が成功した場合はSMSを送信する必要があります。特定の期間に送信されるこのタスクをスケジュールする方法はありますか、午前8時から午後6時まで?私はエタと有効期限を指定することができますが、SMSを送信して翌日に送信する必要があるため、タスクが期限切れにならないようにします。

答えて

0

SMSをキューに入れてcrontab shcedulerは特定の時間にそれらを送信します。以下の例は、tasks.send_smsタスク8と

http://ask.github.com/celery/userguide/periodic-tasks.html#crontab-schedules

from celery.schedules import crontab 

CELERYBEAT_SCHEDULE = { 
    "every-10-mins-between-8-6": { 
     "task": "tasks.send_sms", 
     "schedule": crontab(minute="*/10", hour="8,18"), 
    }, } 
+0

この使用djceleryとdatabasスケジューラのスケジュールを設定する方法はあり6との間に10分ごとに実行しますか? – armonge

+0

CELERYBEAT_SCHEDULER = "djcelery.schedulers.DatabaseScheduler" – mher

関連する問題