0

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

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

4

1 に答える 1

0

SMSをキューに入れ、crontabshcedulerを使用して特定の時間にSMSを送信できます。以下の例では、8から6の間で10分ごとにtasks.send_smsタスクを実行します。

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"),
    }, }
于 2012-02-21T09:39:31.020 に答える