해야할 일이 적혀있는 메시지를 분산하여 비동기로 작업 처리
기본사용법
# tasks.py
from celery import shared_task
import requests
@shared_task
def fetch_data(url):
try:
response = requests.get(url)
# HTTP 응답 코드가 200인 경우에만 데이터를 반환합니다.
if response.status_code == 200:
return response.text
else:
print(f"Failed to fetch data. Status code: {response.status_code}")
return None
except requests.RequestException as e:
print(f"An error occurred: {e}")
return None
# views.py
from .tasks import fetch_data
url = "https://www.example.com" # 데이터를 가져올 웹 페이지의 URL
result = fetch_data.delay(url)
# result = fetch_data.apply_async(args=[url])
if result.successful(): # Celery 작업의 결과를 확인하고 처리
data = result.get()
print("Fetched data successfully:")
print(data)
else:
print("Failed to fetch data.")