Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django芹菜无法在任务内查询postgres db_Python_Django_Postgresql_Redis_Celery - Fatal编程技术网

Python Django芹菜无法在任务内查询postgres db

Python Django芹菜无法在任务内查询postgres db,python,django,postgresql,redis,celery,Python,Django,Postgresql,Redis,Celery,在我的芹菜任务中,我试图查询我的postgres数据库。但我总是会遇到以下错误: 以下简单场景有效: 如果我更改task.py并只执行一个简单的for循环 task.py @shared_task(bind=True) def ImportFiles(self, activity_file_list, user_id_list,activityfile_id,file_type_list): print('Task ImportFiles started') progre

在我的芹菜任务中,我试图查询我的postgres数据库。但我总是会遇到以下错误:




以下简单场景有效:

如果我更改task.py并只执行一个简单的for循环

task.py
@shared_task(bind=True)
def ImportFiles(self, activity_file_list, user_id_list,activityfile_id,file_type_list):
    print('Task ImportFiles started')
    progress_recorder = ProgressRecorder(self)
    result = 0
    seconds = 10
    for i in range(seconds):
        print("for: " + str(i))
        time.sleep(1)
        result += i
        progress_recorder.set_progress(i + 1, seconds, description="Downloading")
    print("FOR LOOP FINISHED")
    return 'Task Complete'
芹菜产量:

所以看起来芹菜起作用了,但不知怎么的,我无法向我的博士后数据库查询。我目前正在windows计算机上卸载。。。有人能帮我吗

编辑:我使用以下命令行启动芹菜:

celery -A geodjango.celery worker --loglevel=info --pool=eventlet

我找到了适用于windows的解决方案: 我用以下命令开始我的芹菜:

celery -A geodjango.celery worker --loglevel=info --pool=eventlet
问题似乎是--pool=eventlet-->如果我将pool更改为solo,它就会工作。 下面的命令现在起作用了,我可以进行postgres查询

celery -A geodjango.celery worker --loglevel=info --pool=solo
我不是专家,我想我在教程中看到了--pool=eventlet,所以我使用了它。但如果使用--pool=solo,它会起作用


在这里,我找到了一篇关于不同池选项的文章,可能对其他人也有帮助:

请参阅公认的答案,它说这与Windows操作系统有关,使用基于L*Nux的操作系统。感谢链接,我想我昨天也看到了。我的问题是,目前我无法访问linux机器。所以我正在寻找一个在Windows操作系统上的解决方案。
celery -A geodjango.celery worker --loglevel=info --pool=eventlet
celery -A geodjango.celery worker --loglevel=info --pool=eventlet
celery -A geodjango.celery worker --loglevel=info --pool=solo