首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django中的Forking

Django中的Forking
EN

Stack Overflow用户
提问于 2012-11-26 20:20:12
回答 1查看 510关注 0票数 0

我试图在django视图中创建os.fork(),但得到一个错误:Port 8000 already in use。据我所知,当我这样做时,os.fork()文件描述符被继承,并且我在两个进程中的同一端口获得了两个套接字。

代码语言:javascript
复制
   def view(request):
       ...
       if not os.fork():
          target()
       return

    def target(*args, **kwargs):
       ...
       sd = socket.socket(*args, **kwargs)
       sd.bind(*args)
       sd.listen()
       nsd = sd.accept()
      ...

如果我在子级中对打开的描述符执行错误,我会得到WSGI- os.close()

代码语言:javascript
复制
for i in os.listdir("/proc/%s/fd" % os.getpid()):
   os.close(int(i))

Traceback (most recent call last):
  File "/usr/lib/python2.6/wsgiref/handlers.py", line 94, in run
    self.finish_response()
  File "/usr/lib/python2.6/wsgiref/handlers.py", line 135, in finish_response
    self.write(data)
  File "/usr/lib/python2.6/wsgiref/handlers.py", line 218, in write
    self.send_headers()
  File "/usr/lib/python2.6/wsgiref/handlers.py", line 274, in send_headers
    self.send_preamble()
  File "/usr/lib/python2.6/wsgiref/handlers.py", line 197, in send_preamble
    self._write('HTTP/%s %s\r\n' % (self.http_version,self.status))
  File "/usr/lib/python2.6/wsgiref/handlers.py", line 404, in _write
    self.stdout.write(data)
  File "/usr/lib/python2.6/socket.py", line 318, in write
    self.flush()
  File "/usr/lib/python2.6/socket.py", line 297, in flush
    self._sock.sendall(buffer(data, write_offset, buffer_size))
error: [Errno 9] Bad file descriptor

我需要这一点作为单独的进程,我不想使用3-d党的应用程序,如芹菜。

EN

回答 1

Stack Overflow用户

发布于 2012-11-26 22:58:19

我认为正确的解决方案是使用芹菜(http://docs.celeryproject.org/en/latest/)或类似的东西。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13564731

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档