У меня есть настройка 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()