django-celery-worker add delay task

25 Views Asked by At

my django project, use celery and sent delay task, but callback delay task raise django.db.utils.InterfaceError: (0, '')

my code:

@celery_app.task
def delayTaskTest22222222222222222(index):
      """

      """
      print(index)
      import time
      time.sleep(15)


@celery_app.task
def error_handler(request, exc, traceback):
    # print('Task {0} raised exception: {1!r}\n{2!r}'.format(
    #   request.id, exc, traceback))
    # print()
    from cmdb.models import MyModel
    aa = MyModel.objects.all().count()
    print(aa)


@celery_app.task
def delayTaskEntry():
  """"""
  print('-' * 50)
  delayTaskTest22222222222222222.apply_async(args=(11111,), time_limit=5, link_error=error_handler.s())

I exec delayTaskEntry method, and celery raise Error:


  File "/home/my/.pyenv/versions/3.8.8/envs/abc/lib/python3.8/site-packages/pymysql/cursors.py", line 148, in execute
    result = self._query(query)
  File "/home/my/.pyenv/versions/3.8.8/envs/abc/lib/python3.8/site-packages/pymysql/cursors.py", line 310, in _query
    conn.query(q)
  File "/home/my/.pyenv/versions/3.8.8/envs/abc/lib/python3.8/site-packages/pymysql/connections.py", line 547, in query
    self._execute_command(COMMAND.COM_QUERY, sql)
  File "/home/my/.pyenv/versions/3.8.8/envs/abc/lib/python3.8/site-packages/pymysql/connections.py", line 793, in _execute_command
    raise err.InterfaceError(0, "")
django.db.utils.InterfaceError: (0, '')

I want set delay task time_limit and get all Error, what should i modify my code.

Think you!!!!!

0

There are 0 best solutions below