Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.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
Redis 计划错误:无法';t apply scheduled task downloader:参数必须是int或具有fileno()方法_Redis_Celery_Django Celery_Supervisord - Fatal编程技术网

Redis 计划错误:无法';t apply scheduled task downloader:参数必须是int或具有fileno()方法

Redis 计划错误:无法';t apply scheduled task downloader:参数必须是int或具有fileno()方法,redis,celery,django-celery,supervisord,Redis,Celery,Django Celery,Supervisord,我在django应用程序中添加了django芹菜和kombu.transport.django settings.py: 芹菜 芹菜管理器配置: 当使用django芹菜接口(本应下载一些文件)计划任务时,会引发以下错误: Traceback (most recent call last): File "/home/vagrant/.virtualenvs/project/local/lib/python2.7/site-packages/celery/beat.py", line 203, i

我在django应用程序中添加了django芹菜和kombu.transport.django

settings.py: 芹菜 芹菜管理器配置: 当使用django芹菜接口(本应下载一些文件)计划任务时,会引发以下错误:

Traceback (most recent call last):

File "/home/vagrant/.virtualenvs/project/local/lib/python2.7/site-packages/celery/beat.py", line 203, in maybe_due
    result = self.apply_async(entry, publisher=publisher)

File "/home/vagrant/.virtualenvs/project/local/lib/python2.7/site-packages/celery/beat.py", line 259, in apply_async
    entry, exc=exc)), sys.exc_info()[2])

File "/home/vagrant/.virtualenvs/project/local/lib/python2.7/site-packages/celery/beat.py", line 251, in apply_async
    **entry.options)

File "/home/vagrant/.virtualenvs/project/local/lib/python2.7/site-packages/celery/app/task.py", line 555, in apply_async
    **dict(self._get_exec_options(), **options)

File "/home/vagrant/.virtualenvs/project/local/lib/python2.7/site-packages/celery/app/base.py", line 323, in send_task
    reply_to=reply_to or self.oid, **options

File "/home/vagrant/.virtualenvs/project/local/lib/python2.7/site-packages/celery/app/amqp.py", line 302, in publish_task
    **kwargs

File "/home/vagrant/.virtualenvs/project/local/lib/python2.7/site-packages/kombu/messaging.py", line 168, in publish
    routing_key, mandatory, immediate, exchange, declare)

File "/home/vagrant/.virtualenvs/project/local/lib/python2.7/site-packages/kombu/connection.py", line 440, in _ensured
    return fun(*args, **kwargs)

File "/home/vagrant/.virtualenvs/project/local/lib/python2.7/site-packages/kombu/messaging.py", line 180, in _publish
    [maybe_declare(entity) for entity in declare]

File "/home/vagrant/.virtualenvs/project/local/lib/python2.7/site-packages/kombu/messaging.py", line 111, in maybe_declare
    return maybe_declare(entity, self.channel, retry, **retry_policy)

File "/home/vagrant/.virtualenvs/project/local/lib/python2.7/site-packages/kombu/common.py", line 99, in maybe_declare
    return _maybe_declare(entity)

File "/home/vagrant/.virtualenvs/project/local/lib/python2.7/site-packages/kombu/common.py", line 110, in _maybe_declare
    entity.declare()

File "/home/vagrant/.virtualenvs/project/local/lib/python2.7/site-packages/kombu/entity.py", line 505, in declare
    self.queue_declare(nowait, passive=False)

File "/home/vagrant/.virtualenvs/project/local/lib/python2.7/site-packages/kombu/entity.py", line 531, in queue_declare
    nowait=nowait)

File "/home/vagrant/.virtualenvs/project/local/lib/python2.7/site-packages/kombu/transport/virtual/__init__.py", line 447, in queue_declare
    return queue_declare_ok_t(queue, self._size(queue), 0)

File "/home/vagrant/.virtualenvs/project/local/lib/python2.7/site-packages/kombu/transport/redis.py", line 651, in _size
    sizes = cmds.execute()

File "/home/vagrant/.virtualenvs/project/local/lib/python2.7/site-packages/redis/client.py", line 2157, in execute
    conn.disconnect()

File "/home/vagrant/.virtualenvs/project/local/lib/python2.7/site-packages/kombu/transport/redis.py", line 800, in disconnect
    channel._on_connection_disconnect(self)

File "/home/vagrant/.virtualenvs/project/local/lib/python2.7/site-packages/kombu/transport/redis.py", line 461, in _on_connection_disconnect
    self.connection.cycle._on_connection_disconnect(connection)

File "/home/vagrant/.virtualenvs/project/local/lib/python2.7/site-packages/kombu/transport/redis.py", line 259, in _on_connection_disconnect
    self.poller.unregister(connection._sock)

File "/home/vagrant/.virtualenvs/project/local/lib/python2.7/site-packages/kombu/utils/eventio.py", line 85, in unregister
    self._epoll.unregister(fd)

SchedulingError: Couldn't apply scheduled task downloader: argument must be an int, or have a fileno() method.

我不知道这些错误是从哪里来的

如有任何建议,将不胜感激

更新1: 我使用django芹菜管理界面来安排任务,任务在已安装的应用程序中注册的应用程序中定义如下:

@shared_task
def downloader():
    # execute static/shell_scripts/feed_downloader.sh
    import subprocess
    PROJECT_PATH = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
    subprocess.call(PROJECT_PATH+"/static/shell_scripts/feed_downloader.sh", shell=True)
feed_downloader.sh文件调用一个django管理命令,如果我独立执行,该命令可以正常工作,如:

python manage.py feed_downloader
如果我在第85行之前添加一个print语句来检查文件中的
fd
参数

/home/vagrant/.virtualenvs/project/local/lib/python2.7/site-packages/kombu/utils/eventio.py
然后打印以下消息:

see this <socket._socketobject object at 0x131b750>
see this None
see this <socket._socketobject object at 0x131bc90>
see this None
看看这个
看到这个了吗
看到这个了吗
看到这个了吗

如何创建芹菜任务?看起来您正在传递无法通过代理发送的参数中的对象。@daniula有时会执行计划任务,并且在大多数情况下会抛出上述错误……我还将工作人员的数量从1个增加到4个,工作了一两次,然后又开始出错。它与worker或redis有关吗?此外,我还添加了
BROKER\u TRANSPORT\u OPTIONS={'visibility\u timeout':3600}芹菜\u ACKS\u LATE=True
,但情况并没有改善。我发现,若计划时间大约为2分钟或更短,则下载程序任务会成功执行,但若超过该时间,则会抛出上述参数错误。这意味着redis正在使作业队列中的作业过期??
python manage.py feed_downloader
/home/vagrant/.virtualenvs/project/local/lib/python2.7/site-packages/kombu/utils/eventio.py
see this <socket._socketobject object at 0x131b750>
see this None
see this <socket._socketobject object at 0x131bc90>
see this None