django celery redis簡單測試

2021-09-07 03:33:13 字數 2558 閱讀 6963

希望在下一版中,能用這個小芹菜,來實現非同步的多工並行哈。

安裝redis之類的不表,只說在django當中要注意配置的事項。

0,安裝外掛程式

yum install redis-server

pip install celery

pip install celery-with-redis

pip install django-celery

1,settings.py當中的配置:

import

djcelery

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

'

from

__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))

3,__init__.py當中的配置

from

__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

5,測試**

>>> 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 info
7,輸出截圖

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...