Một số chức năng sẽ chạy không đồng bộ trên máy chủ web. Gửi email là ví dụ điển hình.Đa luồng cho Python Django
Cách tốt nhất (hoặc đa số nhất) viết một hàm trang trí để chạy hàm không đồng bộ?
thiết lập của tôi là một chung một: Python 2.4.7, Django 1.4, Gunicorn 0.17.2
Ví dụ, đây là một khởi đầu:
from threading import Thread
def postpone(function):
def decorator(*args, **kwargs):
t = Thread(target = function, args=args, kwargs=kwargs)
t.daemon = True
t.start()
return decorator
mong muốn sử dụng:
@postpone
def foo():
pass #do stuff
Nhìn vào bài này quá http://stackoverflow.com/questions/573618/django -set-up-a-schedule-job. Đối với một Job đã lên lịch chọn giải pháp dựa trên cron. Công việc theo lịch trình, nhiệm vụ không đồng bộ chọn Celery. Tôi bắt đầu bằng https://github.com/tivix/django-cron trước khi chuyển sang Celery gần đây. –
Cảm ơn tất cả các câu trả lời cho đến nay, tuy nhiên Celery yêu cầu khá nhiều chi phí (cài đặt ứng dụng, tạo một db cho nó). Vì vậy, trong khi Celery là một _solution_, nó không _answer_ câu hỏi của tôi về viết một trang trí độc lập để đa luồng một chức năng. – tomcounsell