내 장고 (버전 1.5.4) 프로젝트에서 지연된 작업을 관리하기 위해 Cerely (버전 3.0.25)을 사용하고 있습니다.Celery : 작업이 너무 빨리 실행되어 업데이트 된 DB를 검색 할 수 없습니다.
쿼리을 저장 한 후 이 (가) celery로 업데이트 된 DB를 검색 할 때 문제가 발생했습니다.
다음은 샘플 코드입니다. 내가 작업을 1 초 지연시 ( views.py) 한마디로
# import model
from .models import SampleModel
# import celery task
from utils.tasks import GetLastID
# Sample function in view
def save_query():
# Sample saving query. Let's assume that query.id returns value "7"
query = SampleModel(field_A="A", field_B="B")
query.save()
# Case 1 : this return "6" which is a past 'Last ID value' (not expected)
GetLastID.apply_async(args=[], countdown=0)
# Case 2 : this return "7" which is most recent ID value as expected
GetLastID.apply_async(args=[], countdown=1)
는, 내가 값을 예상되었다. 그러나 셀러리 작업을 지체없이 실행했을 때 값이 업데이트되지 않았습니다.
" 셀러리가 너무 빨리 실행되어 업데이트 된 DB을 검색 할 수 없다"고 생각합니다.
은 지연없이 예상 값을 얻을 수 있습니까? 다음은 내가 생각한 의사 코드입니다.
(query.save() | GetLastID()).delay()
미리 감사드립니다.
를 사용하는 예는 장고보기 기능에 SampleModel를 저장하는 코드를인가? – falsetru
@falsetru 예, views.py에 있습니다. –