1 安裝celery 和redis庫
解除安裝 3.0以上版本的redis,安裝2.1版本的redis 注:此處是乙個坑pip install celery-
with
-redis
2 安裝本地redis資料庫 此處不做說明,後續對資料庫梳理時再做說明pip uninstall redis
pip install redis==
2.10
.6
3 開始celery編碼
# -*- coding: utf-8 -*-
# @author: roble
# @date: 2019-10-15 20:24:55
# @last modified by: roble
# @last modified time: 2019-12-12 22:15:15
import time
from celery import celery
broker =
'redis:'
backend =
'redis:/0'
'tasks'
, broker=broker, backend=backend)
defadd
(x, y)
:#time.sleep(1) # 模擬耗時操作
("*****==6666"
)return
"send successful"
4 測試# 主函式 呼叫celery
(">>>>進入主方法,開始呼叫celery任務。。。"
)answer=add.delay(4,
4)print
(">>>>任務唯一id:%s"
%answer.id)
# answer.id 獲取任務的唯一id
async
= asyncresult(
id=answer.
idtime.sleep(3)
# async.get()
ifasync
.successful():
result =
async
.get(
(">>>>任務呼叫成功,返回值:%s"
%result)
#獲取方法返回值
# result.forget() # 將結果刪除
elif
async
.failed():
(">>>>執行失敗"
)elif
async
.status ==
'pending'
(">>>>任務等待中被執行"
)elif
async
.status ==
'retry'
(">>>>任務異常後正在重試"
)elif
async
.status ==
'started'
(">>>>任務已經開始被執行"
)
在window中開啟命令列模式,進入編碼資料夾目錄下啟動celery
celery -a task worker -l info -p threads
見到以下情況說明celery已正常啟動
cmd開啟第二個dos視窗,執行主函式,呼叫celery任務
5 redis 中資料簡單介紹
主函式呼叫後會往redis資料庫中寫入一對鍵值,該鍵對應的值為list型別
Django redis celery實現非同步任務
1 django中的非同步請求 同步請求 所有邏輯處理 資料計算任務在view中處理完畢後返回response。在view處理任務時使用者處於等待狀態,直到頁面返回結果。2 celery celery是基於python開發的乙個分布式任務佇列框架,支援使用任務佇列的方式在分布的機器 程序 執行緒上執...
關於DeviceIoControl實現非同步的筆記
鏈結位址 一直所做的都是同步實現的。當然很多情況這並不是很好的解決問題。現在手上的問題是 使用者層通知底層驅動 filter driver 做某件事,然後返回該事件執行的結果。如果該事件是一件簡單的事情,這裡是指極短時間內可以完成的,那麼在允許範圍內,我們可以用同步來完成。但是如果該事件是一件耗時的...
異方差 Python實現
借鑑一位博主的文章,結合兩篇,用於實現python 本人親測,可以跑通。這位博主的 字母有連一起的,以下是我親測的 import pandas as pd import numpy as np from patsy import dmatrices from statsmodels.stats.ou...