#首先進行一些簡單配置 pip install celery apt-get install erlang apt-get install rabbitmq-server
#開啓rabbitmq-server命令以下 service rabbitmq-server start
vi /var/log/rabbitmq/rabbit\@ubuntu.log
執行上述操做後會顯示以下數據庫
有些系統顯示的是Noneubuntu
顯示沒有找到配置文件.須要咱們本身建立這個文件app
cd /etc/rabbitmq/
vi rabbitmq.config
編輯內容以下異步
[{rabbit, [{loopback_users, []}]}].
這裏的意思是開放使用,rabbitmq默認建立的用戶guest,密碼也是guest,這個用戶默認只能是本機訪問,localhost或者127.0.0.1,從外部訪問須要添加上面的配置。函數
保存配置後重啓服務:oop
service rabbitmq-server restart
此時就能夠從外部訪問了,但此時再看log文件,發現內容仍是原來的,仍是顯示沒有找到配置文件,能夠手動刪除這個文件再重啓服務,不過這不影響使用測試
rm rabbit@localhost.log
service rabbitmq-server restart
這時查看log,發現沒問題spa
開啓管理UI:3d
rabbitmq-plugins enable rabbitmq_management
在Windows下打開地址:rest
http://192.168.24.179:15672
用戶名密碼都是guest
建立tasks.py文件
寫入如下代碼
#coding:utf-8 from celery import Celery import time app = Celery('tasks',backend='amqp', broker='amqp://guest@127.0.0.1:5672//') @app.task def add(x, y): print 'hello celery' time.sleep(10) return x + y
新建一個終端,啓動celery服務
celery -A tasks worker --loglevel=info
執行任務
也能夠循環執行add函數來測試同步和異步的特色,例如執行10000次看他們的區別
四 利用celery執行定時任務
建立time_task.py文件.主要職責是每隔10秒輸出hello,每隔30秒輸出world,每週一早上7點半輸出Happy Mondays.你也能夠改形成根據用戶生日定時發送生日賀卡郵件或者每週一備份數據庫等功能
from celery import Celery from celery.schedules import crontab app = Celery() @app.on_after_configure.connect def setup_periodic_tasks(sender, **kwargs): # Calls test('hello') every 10 seconds. sender.add_periodic_task(10.0, test.s('hello'), name='add every 10') # Calls test('world') every 30 seconds sender.add_periodic_task(30.0, test.s('world'), expires=10) # Executes every Monday morning at 7:30 a.m. sender.add_periodic_task( crontab(hour=7, minute=30, day_of_week=1), test.s('Happy Mondays!'), ) @app.task def test(arg): print(arg)
新建一個終端 , 命令如上
以上就是celery經常使用的兩種簡單操做了, 若有疑問, 請留言!!!