celery的簡單使用

 

一   安裝celery

#首先進行一些簡單配置
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    

    

三   利用celery執行異步任務 

  建立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經常使用的兩種簡單操做了, 若有疑問, 請留言!!!

相關文章
相關標籤/搜索