希望在下一版中,能用這個小芹菜,來實現非同步的多工並行哈。
安裝redis之類的不表,只說在django當中要注意配置的事項。
0,安裝外掛程式
yum install redis-server1,settings.py當中的配置:pip install celery
pip install celery-with-redis
pip install django-celery
importdjcelery
djcelery.setup_loader()
broker_url = '
redis://localhost:6379/0
'celery_result_backend = '
redis://localhost:6379/0
'celery_accept_content = ['
json']
celery_task_serializer = '
json
'celery_result_serializer = '
json
'
from3,__init__.py當中的配置__future__
import
absolute_import
import
osfrom celery import
celery
from django.conf import
settings
os.environ.setdefault(
'django_settings_module
', '
celerytest.settings')
celerytest')
'django.conf:settings')
lambda
defdebug_task(self):
print('
request:
'.format(self.request))
from5,測試**__future__
import
absolute_import
4,tasks.py當中的配置
from celerytest import
from celery import
shared_task
from time import
sleep
defuploadtask(message):
uploadtask.update_state(state='
progress
', meta=)
sleep(30)
uploadtask.update_state(state='
progress
', meta=)
sleep(30)
return
message
defget_task_status(task_id):
task =uploadtask.asyncresult(task_id)
status =task.state
progress =0
if status == u'
success':
progress = 100
elif status == u'
failure':
progress =0
elif status == '
progress':
progress = task.info['
progress']
return
defadd(x, y):
return x +y
defmul(x, y):
return x * y
>>> t = uploadtask.delay("
heel")
>>>get_task_status(t.id)
>>>get_task_status(t.id)
>>>get_task_status(t.id)
>>>get_task_status(t.id)
>>>get_task_status(t.id)
>>> add.delay(3245, 35)
6,啟動worker(同樣注意執行時的帳號,執行時當前目錄,proj的名稱及引數,在後期或是生產環境時,daemon的配置)
celery worker -a celerytest -l info7,輸出截圖
django celery redis 傳送郵件
broker是乙個訊息傳輸的中介軟體,可以理解為乙個郵箱。每當應用程式呼叫celery的非同步任務的時候,會向broker傳遞訊息,而後celery的worker將會取到訊息,進行對於的程式執行。好吧,這個郵箱可以看成是乙個訊息佇列。那麼什麼又是backend,通常程式傳送的訊息,發完就完了,可能都...
親測,安裝cocoa pods,簡單,暴力,有效!
開啟mac終端 1.移除現有ruby預設源 gem sources remove 2.使用新的源 gem sources a 3.驗證新源是否替換成功 gem sources l 4.安裝cocoapods 1 sudo gem install cocoa pods 備註 如果不行試試這個 2 su...
SpringMVC接收簡單引數建立物件測試
得到輸出為 預設構造方法 mark,12 student 可見springmvc會建立物件,卻無法對其賦值。public class student override public string tostring 得到輸出為 兩個引數的構造方法 mark,12 student 說明springmvc...