У меня есть настройка crontab для запуска задачи в 5 минут Intervel - PullRequest
0 голосов
/ 05 февраля 2019

У меня есть настройка crontab в приложении Django для запуска задачи с интервалом в 5 минут.после запуска 1 раз получаю ошибку в системном журнале сервера.ниже журнал.

Feb  5 13:23:42 backend-dev bash[26913]: [2019-02-05 18:53:42,378: WARNING/MainProcess] Traceback (most recent call last):
Feb  5 13:23:42 backend-dev bash[26913]: [2019-02-05 18:53:42,378: WARNING/MainProcess] File "/usr/local/bin/celery", line 11, in 
Feb  5 13:23:42 backend-dev bash[26913]: [2019-02-05 18:53:42,379: WARNING/MainProcess] sys.exit(main())
Feb  5 13:23:42 backend-dev bash[26913]: [2019-02-05 18:53:42,379: WARNING/MainProcess] File "/usr/local/lib/python3.6/dist-packages/celery/__main__.py", line 16, in main
Feb  5 13:23:42 backend-dev bash[26913]: [2019-02-05 18:53:42,379: WARNING/MainProcess] _main()
Feb  5 13:23:42 backend-dev bash[26913]: [2019-02-05 18:53:42,379: WARNING/MainProcess] File "/usr/local/lib/python3.6/dist-packages/celery/bin/celery.py", line 322, in main
Feb  5 13:23:42 backend-dev bash[26913]: [2019-02-05 18:53:42,380: WARNING/MainProcess] cmd.execute_from_commandline(argv)
Feb  5 13:23:42 backend-dev bash[26913]: [2019-02-05 18:53:42,380: WARNING/MainProcess] File "/usr/local/lib/python3.6/dist-packages/celery/bin/celery.py", line 496, in execute_from_commandline
Feb  5 13:23:42 backend-dev bash[26913]: [2019-02-05 18:53:42,380: WARNING/MainProcess] super(CeleryCommand, self).execute_from_commandline(argv)))
Feb  5 13:23:42 backend-dev bash[26913]: [2019-02-05 18:53:42,381: WARNING/MainProcess] File "/usr/local/lib/python3.6/dist-packages/celery/bin/base.py", line 275, in execute_from_commandline
Feb  5 13:23:42 backend-dev bash[26913]: [2019-02-05 18:53:42,381: WARNING/MainProcess] return self.handle_argv(self.prog_name, argv[1:])
Feb  5 13:23:42 backend-dev bash[26913]: [2019-02-05 18:53:42,381: WARNING/MainProcess] File "/usr/local/lib/python3.6/dist-packages/celery/bin/celery.py", line 488, in handle_argv
Feb  5 13:23:42 backend-dev bash[26913]: [2019-02-05 18:53:42,382: WARNING/MainProcess] return self.execute(command, argv)
Feb  5 13:23:42 backend-dev bash[26913]: [2019-02-05 18:53:42,382: WARNING/MainProcess] File "/usr/local/lib/python3.6/dist-packages/celery/bin/celery.py", line 420, in execute
Feb  5 13:23:42 backend-dev bash[26913]: [2019-02-05 18:53:42,382: WARNING/MainProcess] ).run_from_argv(self.prog_name, argv[1:], command=argv[0])
Feb  5 13:23:42 backend-dev bash[26913]: [2019-02-05 18:53:42,383: WARNING/MainProcess] File "/usr/local/lib/python3.6/dist-packages/celery/bin/base.py", line 279, in run_from_argv
Feb  5 13:23:42 backend-dev bash[26913]: [2019-02-05 18:53:42,383: WARNING/MainProcess] sys.argv if argv is None else argv, command)
Feb  5 13:23:42 backend-dev bash[26913]: [2019-02-05 18:53:42,383: WARNING/MainProcess] File "/usr/local/lib/python3.6/dist-packages/celery/bin/base.py", line 363, in handle_argv
Feb  5 13:23:42 backend-dev bash[26913]: [2019-02-05 18:53:42,383: WARNING/MainProcess] return self(*args, **options)
Feb  5 13:23:42 backend-dev bash[26913]: [2019-02-05 18:53:42,384: WARNING/MainProcess] File "/usr/local/lib/python3.6/dist-packages/celery/bin/base.py", line 238, in __call__
Feb  5 13:23:42 backend-dev bash[26913]: [2019-02-05 18:53:42,384: WARNING/MainProcess] ret = self.run(*args, **kwargs)
Feb  5 13:23:42 backend-dev bash[26913]: [2019-02-05 18:53:42,384: WARNING/MainProcess] File "/usr/local/lib/python3.6/dist-packages/celery/bin/beat.py", line 109, in run
Feb  5 13:23:42 backend-dev bash[26913]: [2019-02-05 18:53:42,384: WARNING/MainProcess] return beat().run()
Feb  5 13:23:42 backend-dev bash[26913]: [2019-02-05 18:53:42,385: WARNING/MainProcess] File "/usr/local/lib/python3.6/dist-packages/celery/apps/beat.py", line 81, in run
Feb  5 13:23:42 backend-dev bash[26913]: [2019-02-05 18:53:42,385: WARNING/MainProcess] self.start_scheduler()
Feb  5 13:23:42 backend-dev bash[26913]: [2019-02-05 18:53:42,385: WARNING/MainProcess] File "/usr/local/lib/python3.6/dist-packages/celery/apps/beat.py", line 109, in start_scheduler
Feb  5 13:23:42 backend-dev bash[26913]: [2019-02-05 18:53:42,385: WARNING/MainProcess] service.start()
Feb  5 13:23:42 backend-dev bash[26913]: [2019-02-05 18:53:42,386: WARNING/MainProcess] File "/usr/local/lib/python3.6/dist-packages/celery/beat.py", line 588, in start
Feb  5 13:23:42 backend-dev bash[26913]: [2019-02-05 18:53:42,386: WARNING/MainProcess] interval = self.scheduler.tick()
Feb  5 13:23:42 backend-dev bash[26913]: [2019-02-05 18:53:42,386: WARNING/MainProcess] File "/usr/local/lib/python3.6/dist-packages/celery/beat.py", line 307, in tick
Feb  5 13:23:42 backend-dev bash[26913]: [2019-02-05 18:53:42,386: WARNING/MainProcess] self.apply_entry(entry, producer=self.producer)
Feb  5 13:23:42 backend-dev bash[26913]: [2019-02-05 18:53:42,387: WARNING/MainProcess] File "/usr/local/lib/python3.6/dist-packages/celery/beat.py", line 246, in apply_entry
Feb  5 13:23:42 backend-dev bash[26913]: [2019-02-05 18:53:42,387: WARNING/MainProcess] debug('%s sent. id->%s', entry.task, result.id)
Feb  5 13:23:42 backend-dev bash[26913]: [2019-02-05 18:53:42,387: WARNING/MainProcess] AttributeError
Feb  5 13:23:42 backend-dev bash[26913]: [2019-02-05 18:53:42,387: WARNING/MainProcess] :
Feb  5 13:23:42 backend-dev bash[26913]: [2019-02-05 18:53:42,387: WARNING/MainProcess] 'NoneType' object has no attribute 'id'
Feb  5 13:23:42 backend-dev systemd[1]: celerybeat.service: Main process exited, code=exited, status=1/FAILURE
Feb  5 13:23:42 backend-dev systemd[1]: celerybeat.service: Failed with result 'exit-code'.

Я ожидаю выходной пробег через каждые 5 минут.

 @shared_task(
    base=TransactionAwareTask, max_retries=2, autoretry_for=(Exception, ))
def send_consultation_reminder_user_one_hours():
    date_time_now = datetime.now()
    date_time_after_one_hours = datetime.now() + timedelta(hours=1)
    list_of_consultations = ConsultationDetails.objects.filter(
        start_date_time__range=(date_time_now, date_time_after_one_hours), one_reminder_sent_at__isnull=True)
    for consultation in list_of_consultations:
        EventMailer(
            EventMailer.MAILER_CONSULT_REMINDER_USER,
            consultation.professional.user,
            user=consultation.user,
            professional=consultation.professional,
            job=None,
            consult=consultation,
            send_to_email=consultation.user.email).send_mail_to_user()
        consultation.one_reminder_sent_at = timezone.now()
        consultation.save()
...