Nice programing

셸에서 셀러리 주기적 작업을 수동으로 실행하려면 어떻게해야합니까?

nicepro 2020. 11. 11. 20:38
반응형

셸에서 셀러리 주기적 작업을 수동으로 실행하려면 어떻게해야합니까?


저는 셀러리와 장고 셀러리를 사용하고 있습니다. 테스트하고 싶은 정기 작업을 정의했습니다. 콘솔 출력을 볼 수 있도록 셸에서 정기적 인 작업을 수동으로 실행할 수 있습니까?


Django 셸에서 작업을 실행 해 보셨습니까? .apply작업 방법을 사용하여 열심히 로컬에서 실행되도록 할 수 있습니다.

작업이 하위 모듈의 my_taskDjango 앱 myapp에서 호출되었다고 가정합니다 tasks.

$ python manage.py shell
>>> from myapp.tasks import my_task
>>> eager_result = my_task.apply()

결과 인스턴스는 AsyncResult결과가 항상 열심히 로컬로 평가 .apply()되고 작업이 완료 될 때까지 메서드가 차단 된다는 점을 제외 하면 일반적인 유형 과 동일한 API를 갖습니다 .


예를 들어주기적인 시간이 충족되지 않는 경우와 같이 조건이 충족되지 않을 때 작업을 트리거하는 것을 의미합니다. 두 단계로 할 수 있습니다.

1. 작업 ID를 가져옵니다.

입력하여 할 수 있습니다.

celery inspect registered

와 같은 것을 볼 수 app.tasks.update_something있습니다. 아무것도 없다면 celery시작되지 않았을 것입니다 . 그냥 실행하세요.

2. 작업 실행 celery call

celery call app.tasks.update_something

자세한 내용은 다음을 입력하십시오.

celery --help
celery inspect --help
celery call --help

두 개의 셸을 열어야한다고 생각합니다. 하나는 Python / Django 셸에서 작업을 실행하기위한 것이고 다른 하나는 실행 celery worker( python manage.py celery worker)을 위한 것 입니다. 이전 답변에서 말했듯이 apply()또는 사용하여 작업을 실행할 수 있습니다.apply_async()

더 이상 사용되지 않는 명령을 사용하지 않도록 대답을 편집했습니다.

참고 URL : https://stackoverflow.com/questions/12900023/how-can-i-run-a-celery-periodic-task-from-the-shell-manually

반응형