Django Celery任务已接收,执行,但尚未完成,但已完成GlobalBestPSO pyswarms

时间:2020-03-16 22:50:52

标签: django celery django-celery

我在Docker中拥有带有Celery的Django应用。有Django容器,芹菜容器。

django==1.11.4
gunicorn==19.7.1
celery==4.4
redis==3.4.1
sqlalchemy==1.3.13
raven==6.1.0
requests==2.22.0
numpy==1.13.3
pandas==0.20.3
keras==1.2.1
theano==0.9
scikit-learn==0.18.1
matplotlib==2.1.1
seaborn==0.8.1
salib==1.1.2
pyswarms==1.1.0
deap==1.3.0

在我的芹菜任务中,我有代码:

from celery import shared_task
from pyswarms.single.global_best import GlobalBestPSO

@shared_task()
def predict_task():
    # Some code

    for i in range(
        print ('print 111')
        optimizer = GlobalBestPSO(n_particles=n_part, dimensions=sample_vals.shape[0], \
                                  options=options, bounds=bounds, \
                                  init_pos=positions)
        print ('print 222')
        cost, pos = optimizer.optimize(predict_seeded_func, iters=1000, **kwargs)
        costs.append(cost)
        poses.append(pos)

    # Some code

运行具有延迟功能的任务:

predict_task.delay(19, test_id, sample_data.to_json())

然后我知道了

[2020-03-16 22:26:11,689: INFO/MainProcess] Received task: app.tasks.predict_task[f207ac10-5eb5-464b-aed7-b3ec3d2d029d]
[2020-03-16 22:26:11,750: WARNING/ForkPoolWorker-2] print 111

然后没有任何反应。

但是,如果我没有芹菜delay()运行:

predict_task(19, test_id, sample_data.to_json())

然后代码成功执行到最后。然后我得到了结果。

有什么问题吗?为什么GlobalBestPSO不在任务中执行?

0 个答案:

没有答案
相关问题