小编scy*_*ale的帖子

Docker,如何通过端口为 Django 应用程序公开套接字

我目前正在supervisor为我的 Django 应用程序提供服务,然后我将其expose移植8002到我的 Docker 文件中。这一切正常...

[program:app]
command=gunicorn app.core.wsgi:application -c /var/projects/app/server/gunicorn.conf
user=webapp

backlog     = 2048
chdir       = "/var/projects/apps"
bind        = "0.0.0.0:8002"
pidfile     = "/var/run/webapp/gunicorn.pid"
daemon      = False
debug       = False
Run Code Online (Sandbox Code Playgroud)

在 Docker 中

# Expose listen ports
EXPOSE 8002
Run Code Online (Sandbox Code Playgroud)

但是,有人告诉我最好使用 socket在端口,但是我不确定如何在我的 Docker 文件中“暴露”一个套接字。这是我有多远:

新的主管配置....

backlog     = 2048
chdir       = "/var/projects/apps"
bind        = "unix:/var/run/webapp/gunicorn.sock"
pidfile     = "/var/run/webapp/gunicorn.pid"
daemon      = False
debug       = False
Run Code Online (Sandbox Code Playgroud)

码头工人

# Expose listen ports
EXPOSE ???? (may be unix:/var/run/webapp/gunicorn.sock fail_timeout=0;???)
Run Code Online (Sandbox Code Playgroud)

我如何暴露套接字?

python django docker

3
推荐指数
1
解决办法
2369
查看次数

Python优化

f = open('wl4.txt', 'w')
hh = 0
######################################
for n in range(1,5):
    for l in range(33,127):
        if n==1:
            b = chr(l) + '\n'
            f.write(b)
            hh += 1 
        elif n==2:           
            for s0 in range(33, 127):
                b = chr(l) + chr(s0) + '\n'
                f.write(b)
                hh += 1
        elif n==3:          
            for s0 in range(33, 127):
                for s1 in range(33, 127):
                    b = chr(l) + chr(s0) + chr(s1) + '\n'
                    f.write(b)
                    hh += 1 
        elif n==4:    
            for s0 in range(33, 127):
                for s1 in …
Run Code Online (Sandbox Code Playgroud)

python optimization

2
推荐指数
2
解决办法
1153
查看次数

django celery 获取类型错误:“元组”对象不可调用

我刚刚使用 RabbitMQ 在我的本地机器 (win10) 上安装了 celery 并遵循了他们的初学者教程。但我收到错误消息TypeError: 'tuple' object is not callable

src>workon clicknstrip
(clicknstrip) src>python manage.py celery beat

celery beat v3.1.18 (Cipater) is starting.
__    -    ... __   -        _
Configuration ->
    . broker -> amqp://guest:**@localhost:5672//
    . loader -> celery.loaders.app.AppLoader
    . scheduler -> celery.beat.PersistentScheduler
    . db -> celerybeat-schedule
    . logfile -> [stderr]@%INFO
    . maxinterval -> now (0s)
[2015-08-13 10:01:13,441: INFO/MainProcess] beat: Starting...
[2015-08-13 10:01:13,466: WARNING/MainProcess] DB Reset: Account for new __version__ field
[2015-08-13 10:01:13,470: CRITICAL/MainProcess] beat …
Run Code Online (Sandbox Code Playgroud)

django celery django-celery

2
推荐指数
1
解决办法
1280
查看次数

更改 Celery 默认队列,未按预期正常工作

我已经覆盖了 celery 默认队列。下面是提到的设置。

设置

BROKER_URL = "amqp://managedbrokerurl/username/"
CELERY_DEFAULT_QUEUE = 'project.env.default'
CELERY_ROUTES = {"app1.tasks.push_api_task": {"queue": "project.env.priority_queue"}}
Run Code Online (Sandbox Code Playgroud)

工人

python manage.py celery worker -n env_worker -Q project.env.default
python manage.py celery worker -n env_worker -Q project.env.priority_queue 
Run Code Online (Sandbox Code Playgroud)

根据配置,我期待除app1.tasks.push_api_task应进入队列之外的所有任务project.env.default。但是发生了一个奇怪的问题,例如任务将进入project.env.default队列以及celery队列(如果没有被覆盖,这是默认值)。

我检查了我们的代码库,没有任何地方使用celery队列来发布任务。

如果你们遇到过同样的问题,请帮助。

Celery 队列屏幕

python celery

2
推荐指数
1
解决办法
4272
查看次数

使用"PicklingError"无法在Windows 10上启动Celery worker

我有一个在Linux上成功运行的简单测试代码,但它不能在我的Windows 10 x64计算机上运行.

当我试图开始一个芹菜工人时,它抱怨了不可恢复的错误:PicklingError.(芹菜版:3.1.20)

在我的celery配置中,我将序列化设置为'json',但它仍然没有任何帮助.

CELERY_RESULT_SERIALIZER = 'json'
CELERY_TASK_SERIALIZER = 'json'
CELERY_ACCEPT_CONTENT = ['json']
Run Code Online (Sandbox Code Playgroud)

这是完整的错误消息:

[2016-02-09 15:11:48,532: ERROR/MainProcess] Unrecoverable error: PicklingError("Can't pickle <type 'module'>: it's not found as __builtin__.module",)

Traceback (most recent call last):
  File "C:\Python27\lib\site-packages\celery-3.1.20-py2.7.egg\celery\worker\__init__.py", line 206, in start
    self.blueprint.start(self)   
  File "C:\Python27\lib\site-packages\celery-3.1.20-py2.7.egg\celery\bootsteps.py", line 123, in start
    step.start(parent)
  File "C:\Python27\lib\site-packages\celery-3.1.20-py2.7.egg\celery\bootsteps.py", line 374, in start
    return self.obj.start()
  File "C:\Python27\lib\site-packages\celery-3.1.20-py2.7.egg\celery\concurrency\base.py", line 131, in start
    self.on_start()
  File "C:\Python27\lib\site-packages\celery-3.1.20-py2.7.egg\celery\concurrency\prefork.py", line 117, in on_start
    **self.options)
  File "C:\Python27\lib\site-packages\billiard\pool.py", line 972, in __init__
    self._create_worker_process(i)
  File "C:\Python27\lib\site-packages\billiard\pool.py", line …
Run Code Online (Sandbox Code Playgroud)

python celery python-2.7

2
推荐指数
1
解决办法
1104
查看次数