생각해 볼 수 있는 아이디어가 있습니다. 저는 현재 이 방법을 시도하고 있으며, 돌을 느끼면서 강을 건너려고 하는 단계에 있습니다. Celery는 예약된 작업을 지원하지만 내 요구 사항을 충족하지 않습니다. Linux에서 crontab과 같은 예약된 작업을 동적으로 추가해야 합니다. 또한 django-celery-beat를 살펴보니 구현에 참조할 가치가 없습니다. , 그래서 나는 문서를 읽고 정보를 검색한 후 마침내 방법을 찾았습니다. Celery의 apply_async 함수는 eta 매개 변수를 가지고 있으며 사용이 간단하지만 eta의 힘은 엄청납니다. 예를 들어 2017-05-02 20:0:0에 실행될 작업을 지정하면 다음과 같이 사용할 수 있습니다.
동적으로 추가할 수 없으며 비트를 다시 시작해야 합니다.
이유 #3493
에 대한 답변을 요청하세요.생각해 볼 수 있는 아이디어가 있습니다. 저는 현재 이 방법을 시도하고 있으며, 돌을 느끼면서 강을 건너려고 하는 단계에 있습니다. Celery는 예약된 작업을 지원하지만 내 요구 사항을 충족하지 않습니다. Linux에서 crontab과 같은 예약된 작업을 동적으로 추가해야 합니다. 또한 django-celery-beat를 살펴보니 구현에 참조할 가치가 없습니다. , 그래서 나는 문서를 읽고 정보를 검색한 후 마침내 방법을 찾았습니다. Celery의 apply_async 함수는 eta 매개 변수를 가지고 있으며 사용이 간단하지만 eta의 힘은 엄청납니다. 예를 들어 2017-05-02 20:0:0에 실행될 작업을 지정하면 다음과 같이 사용할 수 있습니다.
job.apply_async(args=args, kwarg=kwargs, eta=datetime(2017,5,2,20,0,0))
거의 사용되지 않나요? 매일 밤 8시에 실행해야 하는 작업이 있는 경우 이 에타 매개변수를 사용하여 이를 달성할 수 있습니다. 의사 코드는 다음과 같습니다:
으아아아여기서 매우 중요한 점은 작업이 성공적으로 실행되었을 때 다음 실행 시간을 계산하는 방법입니다
. 으아아아작업 실행 성공 및 실패에 대한 기능을 제공합니다. 이를 기반으로 다시 작성하면 됩니다. 구체적으로 설명하는 방법은 여러 가지가 있습니다.