celery官方幫助
本文主要介紹celery+rabbitmq的入門知識
celery 是乙個非同步任務佇列/基於分布式訊息傳遞作業佇列,它側重於實時操作,同樣也支援排程rabbitmq為應用程式提供了強大的訊息服務。它很容易使用,適合在雲規模應用,並支援所有主流的作業系統和開發平台。rabbitmq在mozilla公共許可下開源
使用easy_install安裝
sudo easy_install celery
在ubuntu下使用apt-get方式安裝rabbitmq-server
sudo apt-get install rabbitmq-server
安裝完畢之後可以使用如下命令檢視mq當前服務狀態
alex@alex-pc:~/test$ sudo rabbitmqctl status[sudo] password for alex:
status of node 'rabbit@alex-pc' ...,,
,,
]},, ]
...done.
選擇乙個測試目錄,在當前路徑下新建配置檔案celeryconfig.py,如下:
import sysimport os
sys.path.insert(0, os.getcwd())
celery_imports = ("tasks", )
celery_result_backend = "amqp"
broker_host = "localhost"
broker_port = 5672
broker_user = "guest"
broker_password = "guest"
broker_vhost = "/
新建tasks.py,如下:
fromcelery.task
import
task
@task
defadd(x
,y):returnx+
y
在終端中使用如下命令:
alex@alex-pc:~/test$ celeryd --loglevel=info[2011-07-28 23:06:27,226: warning/mainprocess]
-------------- celery@alex-pc v2.2.7
---- **** -----
--- * *** * -- [configuration]
-- * - **** --- . broker: amqplib://guest@localhost:5672/
- ** ---------- . loader: celery.loaders.default.loader
- ** ---------- . logfile: [stderr]@info
- ** ---------- . concurrency: 2
- ** ---------- . events: off
- *** --- * --- . beat: off
-- ******* ----
--- ***** ----- [queues]
-------------- . celery: exchange:celery (direct) binding:celery
[tasks]
. tasks.add
[2011-07-28 23:06:27,233: info/poolworker-1] child process calling self.run()
[2011-07-28 23:06:27,235: info/poolworker-2] child process calling self.run()
[2011-07-28 23:06:27,236: warning/mainprocess] celery@alex-pc has started.
開啟ipython或者任何python shell即可
in [8]: from celery.task import taskin [9]: import tasks
in [10]: res = tasks.add.delay(2,2)
in [11]: res.ready()
out[11]: true
in [12]: res.result
out[12]: 4
從celeryd的loginfo的輸出資訊中可以看到呼叫成功:
[2011-07-28 23:06:39,081: info/mainprocess] got task from broker: tasks.add[82d8c609-2cac-47e8-be20-eb6a2dc502d6][2011-07-28 23:06:39,120: info/mainprocess] task tasks.add[82d8c609-2cac-47e8-be20-eb6a2dc502d6] succeeded in 0.0137050151825s: 4
celery rabbitmq基本使用
版本 celery 4.3,rabbitmq 3.7 一.使用rabbitmq 安裝rabbitmq mac brew install rabbitmq 配置環境變數 bash profile或.profile,注意路徑 export rabbit home usr local cellar rab...
分治 快排 快選
快排模板 include using namespace std const int n 1e5 10 int n,a n void quick sort int q,int l,int r quick sort q,l,j quick sort q,j 1,r intmain 快速選擇演算法 選擇...
快重傳和快恢復
比如傳送方傳送了1,2,3,4四個報文,2 3 4先後到達接收方,由於接收方收到的是三個失序的報文,就會連續發3個ack為1的報文,表示希望收到報文1。當傳送方接收到1個這樣的冗餘報文時,不採取任何措施,直到收到3個冗餘報文,才認定報文1丟失,此時馬上重傳報文1而不是等待1的超時重傳。這就是快重傳。...