1

Since I am not an English speaker, I use translation tools to write my text.

Task not executed Here are the execution environment and messages

Local PC

  • OS windows 10
  • Python 3.8

DB Server

  • CentOS 7.3
  • Redis 4.0.6
  • psql (PostgreSQL) 10.4
pip Package (relevant parts only)
Package                Version
celery                 5.2.7
Django                 3.2
django-celery-results  2.4.0
django-redis           5.2.0
redis                  4.1.1

*PROJECT\prj\settings.py

CELERY_BROKER_URL = 'redis://:' + REDIS_PASSWORD + '@' + REDIS_HOST + ':6379/1'
CELERY_RESULT_BACKEND = 'django-db'

CELERY_RESULT_SERIALIZER = 'json'
CELERY_TASK_SERIALIZER = 'json'
CELERY_ACCEPT_CONTENT = ['json']

CELERY_TIMEZONE = 'Asia/Tokyo'
CELERY_TASK_TRACK_STARTED = True
CELERY_TASK_TIME_LIMIT = 30 * 60

PROJECT\prj_init_.py

from .celery import app as celery_app
__all__ = ('celery_app',)

PROJECT\prj\celery.py

import os
from celery import Celery

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'prj.settings')
app = Celery('prj')
app.config_from_object('django.conf:settings', namespace="CELERY")
app.autodiscover_tasks()


@app.task(bind=True)
def debug_task(self):
    print(f'Request: {self.request!r}')

PROJECT\common\task.py

from celery import shared_task

@shared_task
def load_croeds_csv(csv_file):
    print("start")

    print("end")
    return "ok"

PROJECT\manegements\view.py

class ProhibitedAreaCsvRegView(ContextRootStaff, FormView):
    template_name = 'manage/prohibited_area_csv.html'
    form_class = ProhibitedAreaCsvForm

    def get_context_data(self, **kwargs):
        context = super(ProhibitedAreaCsvRegView, self).get_context_data(**kwargs)
        title = ""
        context.update({
            'title': title,
            'form': self.form_class()
        })

        return context

    def form_valid(self, form):
        context = self.get_context_data(form=form)
        csv_file = form.cleaned_data["csv_file"]
        temp_path = save_csv_file(csv_file)
        result = load_croeds_csv.delay(temp_path)
        print(result.state)
        context.update({
            'result': result
        })
        return self.render_to_response(context=context)
(venv) PROJECT>celery -A prj worker -l info
 
 -------------- celery@HP1-USER10 v5.2.7 (dawn-chorus)
--- ***** -----
-- ******* ---- Windows-10-10.0.19045-SP0 2023-03-11 00:55:56
- *** --- * ---
- ** ---------- [config]
- ** ---------- .> app:         prj:0x1aa9732be20
- ** ---------- .> transport:   redis://:**@192.168.XXX.XXX:6379/1
- ** ---------- .> results:
- *** --- * --- .> concurrency: 4 (prefork)
-- ******* ---- .> task events: OFF (enable -E to monitor tasks in this worker)
--- ***** -----
 -------------- [queues]
                .> celery           exchange=celery(direct) key=celery


[tasks]
  . common.tasks.load_croeds_csv
  . configs.celery.debug_task

[2023-03-11 00:55:56,890: INFO/MainProcess] Connected to redis://:**@192.168.XX.XXX:6379/1

[2023-03-11 00:55:58,306: INFO/MainProcess] celery@HP1-USER10 ready.
[2023-03-11 00:56:12,928: INFO/MainProcess] Task common.tasks.load_croeds_csv[33f8c8e6-df97-4a7f-a4d5-b0286df934f3] received
[2023-03-11 00:56:14,218: INFO/SpawnPoolWorker-5] child process 3020 calling self.run()
[2023-03-11 00:56:14,226: INFO/SpawnPoolWorker-6] child process 15128 calling self.run()
[2023-03-11 00:56:14,246: INFO/SpawnPoolWorker-7] child process 12300 calling self.run()

>celery -A prj inspect scheduled 
->  celery@HP1-USER10: OK
    - empty -

DBserver redis

127.0.0.1:6379[1]> KEYS *
1) "_kombu.binding.celery.pidbox"
2) "unacked"
3) "unacked_index"
4) "_kombu.binding.celery"
5) "_kombu.binding.celeryev"

runserver

Watching for file changes with StatReloader
System check identified no issues (0 silenced).
March 11, 2023 - 00:55:48
Django version 3.2, using settings 'configs.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
PENDING

Processing does not complete after task is 'received'.

There are no tasks in django-celery-result in the admin.

What could be the cause?

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.