设置django&芹菜:芹菜路径的位置

时间:2017-08-27 20:53:29

标签: django

我正在根据一个例子建立芹菜,此时......

$ export PYTHONPATH=/webapps/hello_django/hello:$PYTHONPATH
$ /webapps/hello_django/bin/celery --app=hello.celery:app worker --loglevel=INFO

在我的结尾设置为

 samuel@samuel-pc:~/Documents/code/revamp$ export PYTHONPATH=/home/samuel/Documents/code/revamp/gallery:$PYTHONPATH
 samuel@samuel-pc:~/Documents/code/revamp$ /home/samuel/Documents/code/revamp/revamp/celery --app=revamp.celery:app worker --loglevel=INFO
 bash: /home/samuel/Documents/code/revamp/revamp/celery: No such file or directory

不确定它对路径做了什么,这就是结果应该是什么

 -------------- celery@django v3.1.11 (Cipater)
---- **** -----
--- * ***  * -- Linux-3.2.0-4-amd64-x86_64-with-debian-7.5
-- * - **** ---
- ** ---------- [config]
- ** ---------- .> app:         hello_django:0x15ae410
- ** ---------- .> transport:   redis://localhost:6379/0
- ** ---------- .> results:     disabled
- *** --- * --- .> concurrency: 2 (prefork)
-- ******* ----
--- ***** ----- [queues]
 -------------- .> celery           exchange=celery(direct) key=celery

[tasks]
  . testapp.tasks.test

[2014-05-20 13:53:59,740: INFO/MainProcess] Connected to redis://localhost:6379/0
[2014-05-20 13:53:59,748: INFO/MainProcess] mingle: searching for neighbors
[2014-05-20 13:54:00,756: INFO/MainProcess] mingle: all alone
[2014-05-20 13:54:00,769: WARNING/MainProcess] celery@django ready.

我的猜测是我需要设置芹菜安装路径的路径,如果有的话可以告诉我路径。

1 个答案:

答案 0 :(得分:0)

有很多关于芹菜教程的headeaches。试试这个:

击:

sudo pip3 install virtualenv
virtualenv env
source env/bin/activate
  • 然后你需要一个django项目和一个应用程序。

击:

   pip install django
   django-admin starproject myproject
   cd myproject
   python manage.py startapp myapp
  • 然后你应该pip install celery

  • 接下来在myapp目录的view.py上创建一个tasks.py:

tasks.py

from celery import Celery
from celery.decorators import task

app = Celery('tasks', broker='pyamqp://guest@localhost//')

@task(bind=True,name="my_task")    
def my_task(self):
   print('hello')
   return 1+1
  • 安装您的经纪人(rabbitmq)

击:

sudo apt-get install rabbitmq-server
sudo service rabbitmq-server restart
  • 转到您的app目录,即具有tasks.py且运行celery -A tasks worker --loglevel=info的目录。这仅适用于定义任务的目录。然后你应该让你的工人起来跑步。当您从任务中打印或返回某些内容时,它应显示在此处。

  • 最后你应该使用你的任务。设置视图(设置网址,制作模板等)并从视图中调用您的任务:

views.py

from django.shortcuts import render
from .tasks import my_task

def index(request):
    my_task.delay()
    return render({},'index.html')  

神奇的是延迟调用是assync,不可阻塞。 从这个简约的例子中,我希望你能更好地理解教程所讨论的路径,并做一些他们让你做的复杂的事情:比如在settings.py上放置celery设置,从其他目录调用worker,把东西放在路径上......当我试图从官方文档中学习这个时,真的很痛苦。

祝你好运!