Запустите задание cron, чтобы проверить срок выполнения задачи.

Я работаю над интеграцией между Django и Chatfuel.

На данный момент бот почти готов, у меня проблемы с последней задачей, у меня есть определенные задачи, и у каждой есть свое время, поэтому за три дня до истечения срока я должен отправить сообщение своему клиенту, напомнив ему / ей, что он/она должны выполнить это задание.

Я мог бы получить messenger_user_id после первого взаимодействия с моим ботом, теперь я знаю, что мне нужно запускать задание cron с частым интервалом, чтобы проверить срок выполнения, и, если он близок, отправить сообщение через Broadcasting API.

Но я не знаю, как достичь этой цели.

    models.py 

class Tasks(models.Model):
    task = models.CharField(max_length=100)
    objective = models.TextField()
    created_date = models.DateTimeField(
                default=timezone.now)
    due_date = models.DateTimeField(
                default=timezone.now)

    def __str__(self):
        return self.task


views.py #in here I obtain user's fb id 

def save_fb_id(request, username, fb_id):
    profile = Profile.objects.get(user__username=username)
    if profile.fb_id != fb_id:
        profile.fb_id = fb_id
        profile.save()
    return HttpResponse()

person Enrique Vargas    schedule 25.01.2018    source источник
comment
Проверьте celery-beat   -  person Jahongir Rahmonov    schedule 25.01.2018
comment
@JahongirRahmonov для установки это только с pip install django-celery-beat без предварительной установки сельдерея?   -  person Enrique Vargas    schedule 25.01.2018
comment
Нет, это часть celery, поэтому вам нужно установить celery, а celery зависит от брокера, такого как rabbitmq. Вам также необходимо установить его. См. это: docs.celeryproject.org/en /последнее/приступая к работе/   -  person Jahongir Rahmonov    schedule 25.01.2018
comment
Спасибо @JahongirRahmonov   -  person Enrique Vargas    schedule 25.01.2018


Ответы (1)


Вы можете проверить модуль django-crontab. Он очень прост в использовании и в то же время мощный в том, что он делает.

person M. Zulqarnain    schedule 25.01.2018