개발/Celery

celery 시간 확인하기

copg 2023. 12. 17. 20:20
728x90
반응형

Celery는 현재 시간을 확인하기 위해 now() 함수를 제공합니다. 이 함수는 datetime 객체를 반환하며, 이 객체는 현재 시간과 날짜 정보를 포함합니다.

Celery를 사용하기 위해서는 먼저 celery 모듈을 가져와야 합니다.

import celery

이제 now() 함수를 사용하여 현재 시간을 확인할 수 있습니다.

now = celery.now()
print(now)

이 코드를 실행하면 다음과 같은 출력이 나타납니다.

2023-12-13 19:20:00.000000

now() 함수는 기본적으로 UTC 시간을 반환합니다. 한국 시간으로 변경하려면 다음과 같이 timezone 인자를 지정합니다.

now = celery.now(timezone='Asia/Seoul')
print(now)

이 코드를 실행하면 다음과 같은 출력이 나타납니다.

2023-12-13 22:20:00.000000

Celery beat를 사용하여 백그라운드 작업을 스케줄링하는 경우, 작업의 시작 시간을 지정할 때 now() 함수를 사용할 수 있습니다. 예를 들어, 다음과 같이 작업을 매일 오후 10시에 시작하도록 설정할 수 있습니다.

@app.task
def my_task():
    # ...

@celery.schedules.schedule(hour='22', minute='00')
def my_schedule():
    return my_task.apply_async()

이 코드를 실행하면 다음과 같은 스케줄이 생성됩니다.

schedules:
  my_schedule:
    description:
    last_run: 2023-12-13 22:00:00
    next_run: 2023-12-14 22:00:00

이 스케줄에 따라 my_task() 작업은 매일 오후 10시에 시작됩니다.