셸에서 셀러리 주기적 작업을 수동으로 실행하려면 어떻게해야합니까?
저는 셀러리와 장고 셀러리를 사용하고 있습니다. 테스트하고 싶은 정기 작업을 정의했습니다. 콘솔 출력을 볼 수 있도록 셸에서 정기적 인 작업을 수동으로 실행할 수 있습니까?
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()
더 이상 사용되지 않는 명령을 사용하지 않도록 대답을 편집했습니다.
'Nice programing' 카테고리의 다른 글
| 추상 클래스 vs. 인터페이스 vs. 믹스 인 (0) | 2020.11.11 |
|---|---|
| 순환 참조를 사용하여 JavaScript 객체 문자열 화 (JSON으로 변환) (0) | 2020.11.11 |
| “RangeError : 최대 호출 스택 크기를 초과했습니다.”이유는 무엇입니까? (0) | 2020.11.11 |
| TriviallyCopyable이 아닌 객체에 대해 std :: memcpy의 동작이 정의되지 않은 이유는 무엇입니까? (0) | 2020.11.11 |
| PowerShell을 시작하는 방법은 무엇입니까? (0) | 2020.11.11 |