如何在laravel中执行多个后台进程?
首先,我知道队列,现在有很好的队列经验.队列的问题是,这是一个队列.我想在后台一起执行多个功能或命令.队列将在队列中保留第二个命令或功能,并在执行第一个命令后将执行! 例如,我有一个带有约3,000,000个记录的表,我想更快地处理它们.我能做的就是将它们分为5个相等的块,并完全执行5个命令,以便我可以使用我的CPU以及处理数据更快. 那么,我该如何使用Laravel做到这一点?队列不会工作,因为他们接一个地执行了一些东西.如果您的想法是创建多个5个队列和主管来完成,那不是我认为的标准方法. 在这种情况下可以做什么的想法? 解决方案 只是为了添加我的个人经验. 首先 主管confs:(/etc/supervisor/conf.d) [program:laravel-worker] process_name=%(program_name)s_%(process_num)02d command=php /var/www/app/artisan queue
0 2023-05-30
编程技术问答社区
PHP中的消息队列和工作者系统的有效架构?
我正在尝试将我想在PHP应用中实现的消息队列模型和作业缠住. 我的目标是卸载需要发送到多个第三方API的消息/数据,因此访问它们不会减慢客户端.因此,将数据发送到消息队列是理想的. 我考虑使用Just Gearman持有MQ/Jobs,但我想使用诸如SQS或Rackspace Cloud cloud queues之类的云队列服务,因此我不必管理消息. 这是我认为我应该做的事情的图: 问题: 我的工人,他们都必须用PHP写下,他们都必须轮询云队列服务吗?这可能会变得昂贵,尤其是当您有很多工人时. 我在想可能有1名仅用于轮询队列的工人,如果有消息,请通知其他工人他们有工作,我只需要使用supervisord在线上保持这1名工人?这种投票方法比使用能够通知的MQ更好吗?我应该如何对MQ进行一次调查,或者每秒或尽可能快地进行调查?如果我看到投票人员放慢脚步,请增加投票人员? 我还在考虑为所有消息有一个队列,然后根据需要处理的位置将消息分配给其他云MQ的工
0 2023-05-30
编程技术问答社区
使用ConfigureMonogusing after Laravel 5.7升级Supervisor日志权限
我试图将我的Laravel 5.5项目升级到5.7.我使用主管,在使用configureMonologUsing()生成日志之前,但显然使用5.6升级,它被折旧了.我在l5.5中的完整代码是:在bootstrap/app.php中: $app->configureMonologUsing( function( Monolog\Logger $monolog) { $processUser = posix_getpwuid( posix_geteuid() ); $processName= $processUser[ 'name' ]; $filename = storage_path( 'logs/laravel-' . php_sapi_name() . '-' . $processName . '.log' ); $handler = new Monolog\Handler\RotatingFileHandler( $filename );
2 2023-05-29
编程技术问答社区
监督员没有这样的文件 socket.py
我正在尝试为Laravel设置队列听众,似乎无法使主管正常工作.我运行supervisorctl reload时会遇到以下错误: error: , [Errno 2] No such file or directory: file: /usr/lib/python2.7/socket.py line: 228 文件确实存在.如果尝试运行sudo supervisorctl我明白了 unix:///var/run/supervisor.sock no such file. 我已经尝试重新安装主管,但这也没有起作用.不确定在这里该怎么做. 我正在运行Laravel Homestead(Ubuntu 16.04). service supervisor status的结果: vagrant@homestead:~/Code$ sudo service supervisor status ● supervisor.ser
0 2023-05-16
编程技术问答社区
Nginx https反向代理无限循环
这是我的站点可用的nginx配置,用于烧瓶应用程序 server { listen 80; server_name _; access_log /var/log/nginx/nginx_access.log; error_log /var/log/nginx/nginx_error.log; rewrite ^ https://$http_host$request_uri? permanent; } server { listen 443; server_name _; access_log /var/log/nginx/nginx_access.log; error_log
20 2023-05-16
编程技术问答社区
使用scrapy spider时间歇性出现 "getrandom()初始化失败"
我建造了一个砂蜘蛛(废品1.4).该蜘蛛是通过Django网站通过Django-RQ和Substisord触发的. 这是正在听Django-RQ事件的主管作业(Reddit用作经纪人) [program:rq_worker] command=python3 manage.py rqworker default directory=/var/www/django-app autostart=true autorestart=true stderr_logfile=/var/log/rq_worker.err.log stdout_logfile=/var/log/rq_worker.out.log 此设置运行良好. 但是,不时(我无法按需重现问题),所有蜘蛛都会抛出相同的OpenSSL错误: 2018-02-11 11:02:19 [scrapy.core.scraper] ERROR: Error downloading
0 2023-05-11
编程技术问答社区
使用Substisord代替PM2来管理Nodejs进程
我们目前使用pm2来保持我们的nodejs进程,我们不使用群集模式(以及相关的负载余额功能). 我们的PHP团队使用Substisord来管理其PHP流程,如在保持流程的时间里,我确实找到了PM2和主管有一些相似之处.但是PM2有更多 所以对我们来说,这似乎是可行的,但是我们没有足够的经验,我们担心我们可能会错过一些东西,尤其是像您这样的大人物,首先不应该这样做!有人做过吗? BTW, my question is kind of the opposite of 在使用Node.js PM2 的虚拟环境中运行Python脚本 解决方案 当您使用PM2或Substisord时,崩溃消息将由PM2或Substisord隐藏.因此,关键点是,当工人崩溃时,您应该有能力知道它,例如破解PM2程序时,当工人崩溃时,将消息发送给监视器系统.
28 2023-04-25
编程技术问答社区
用Nginx、Gunicorn和Supervisor部署Django
我试图通过遵循此设置看起来像这样: nginx用我的vue应用回复 VUE的请求已提交给Api.example.com nginx聆听api.example.com,并将请求指导到Gunicorn的Unix插座 我已检查的东西: 我可以在nginx的access.log中看到vue请求. 我也可以在journalctl -f -u gunicorn中看到这些请求,在supervisor.log中,gunicorn的访问.log 当我的Django应用程序启动时,它会创建一个日志文件,因此我可以看到Gunicorn启动了它.但是Django没有回应UNIX插座的请求. 我可以看到django的响应,当我进入并运行以下命令: curl --no-buffer -XGET --unix-socket /var/www/example/run/gunicorn.sock http://localhost/about.此命令仅在使用localhost的任何我的ALLOW
18 2023-04-23
编程技术问答社区
为gunicorn创建supervisord脚本的正确方法?Django 1.6
这是我的gonicorn.conf,但我似乎无法正确理解命令.当我在命令行中键入它时,命令IM尝试工作,而不是作为主管命令. [program:gunicorn] directory = /home/USER/.virtualenvs/SITE/myApp/ command=/home/USER/.virtualenvs/SITE/bin/python /home/USER/.virtualenvs/SITE/myApp/manage.py run_gunicorn myApp.wsgi:application -c /home/USER/.virtualenvs/SITE/myApp/gunicorn.conf.py user = USER autostart = true autorestart = true redirect_stderr = true stdout_logfile = /home/USER/logs/gunicorn.log stderr_logfile =
2 2023-04-22
编程技术问答社区
用Supervisord运行2个Gunicorn应用程序和Nginx
这个问题肯定使我困惑了几个月.我刚刚拖延修复其他错误并将其放在一边,直到现在必须修复它 - 我正在尝试运行2个单独的Gunicorn应用程序,并在同一sustersord.conf文件中启动NGINX.当我启动主管时,我能够成功运行Handlecalls应用程序,但是当我访问Commentbox负责加载的网站时,我会遇到内部服务错误(500). 当我使用命令字段的命令分别运行handlecalls和注释框应用程序时,应用程序运行良好.为什么当我尝试使用Substisord运行同时运行时,评论框程序会给我500个错误? 我的主管脚本: [program:nginx] directory = /var/www/vmail command = service nginx start -g "daemon off;" autostart = True [program:commentbox] directory = /var/www/vmail command = gu
2 2023-04-22
编程技术问答社区
Nginx-sometimes throws 502 Bad Gateway
我有一个项目django,gunicorn,nginx. 它主要是有效的(大多数端点),但有时Nginx抛出502个坏网关. 错误是upstream prematurely closed connection while reading response header from upstream 你知道这怎么了吗? 谢谢! 解决方案 有时会在页面渲染时间更长的时间 时发生 尝试增加超时(nginx具有60s默认超时) proxy_send_timeout 180s; proxy_read_timeout 180s; 在这里阅读更多信息/ngx_http_proxy_module.html#proxy_read_timeout
4 2023-04-22
编程技术问答社区
H13(连接没有响应)Heroku的错误降低
我正在使用UWSGI,主管和Heroku上的django应用程序运行Django应用. 我通常会在应用程序缩放时获得H13(没有响应的连接)错误: 此问题生成以下日志事件: 2022-10-12T09:35:13.231318+00:00 heroku web.3 - - State changed from up to down 2022-10-12T09:35:13.774228+00:00 heroku web.3 - - Stopping all processes with SIGTERM 2022-10-12T09:35:14.028602+00:00 heroku router - - at=error code=H13 desc="Connection closed without response" method=GET path="/comments/api/assets-uuidasset/xxxx-xxxx-xxxx-xxxx-xxxxx/cou
24 2023-04-22
编程技术问答社区
视图加载时间超过5秒时出现504错误
我已经使用 django-nginx-gunicorn-supervisor-postgresql 进行了安装.在django管理员中,如果视图的加载需要超过5秒,我就有504. 例如,如果我用许多记录过滤更改列表视图,并且需要更多的时间,则将出现504.只要花费更少的时间. 我也注意到,即使在504之后,我也可以在后台运行一些视图,因为我可以看到它们完成后在数据库中进行的修改. 我试图增加我发现的所有超时(Nginx,Gunicorn),但是它们都没有配置为5秒. 有什么猜测可能被错误配置的?或者在哪里可以提高504的超时? 谢谢 我配置的超时是: in/etc/nginx/sites-onabled/mysite proxy_connect_timeout 60; proxy_read_timeout 90; proxy_send_timeout 90; send_timeout 90; fastcgi_read_timeout 300; i
0 2023-04-22
编程技术问答社区
监管人炮制酒瓶错误
我已经将烧瓶应用程序与Gunicorn部署,当我使用Gunicorn启动烧瓶应用程序时,它可以正常工作.当我更改使用主管观看枪支时,我可以访问我的网络,但是主管给了这些日志: 2016-10-31 17:49:49,967 INFO supervisord started with pid 32949 2016-10-31 17:49:50,970 INFO spawned: 'vservice' with pid 32952 2016-10-31 17:49:51,971 INFO success: vservice entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 2016-10-31 17:49:56,285 INFO exited: vservice (exit status 1; not expected) 2016-10-31 17:49:57,287 INFO s
16 2023-04-21
编程技术问答社区
PYTHONOPTIMIZE在Python解释器中的作用是什么?
我与主管一起执行Python任务,当我尝试在Python任务中使用MutilProcess时 "File/usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/lib/python2.7/multiprocessing/process.py", line 124, in start 'daemonic processes are not allowed to have children'" 但是,在我在终端中执行命令"export PYTHONOPTIMIZE=1"后,没关系. 解决方案 设置 PYTHONOPTIMIZE PYTHONOPTIMIZE环境变量 to 1与使用 -O命令线开关: 删除主张语句和任何代码,条件是__debug__的值. 您看到的错误消息是AssertionError异常; assert not _current_process._daemoni
28 2023-04-19
编程技术问答社区
PHPfpm和Nginx在Docker中与Supervisord不工作
我正在使用Substisord的docker容器内运行2个进程和php-fpm 这是日志 2016-12-09 21:37:35,529 CRIT Supervisor running as root (no user in config file) 2016-12-09 21:37:35,596 INFO RPC interface 'supervisor' initialized 2016-12-09 21:37:35,598 INFO supervisord started with pid 1 2016-12-09 21:37:36,602 INFO spawned: 'nginx' with pid 7 2016-12-09 21:37:36,606 INFO spawned: 'php-fpm' with pid 8 2016-12-09 21:37:36,671 INFO exited: nginx (exit status 1; not expected) 201
10 2023-04-18
编程技术问答社区
为什么Supervisor不能识别代码更改?
我正在使用 superiopisor 在ec2实例上管理我的node.js applicaton,with git .主管在确保我的应用程序保持良好的过程中做得很好,但是每当我将新的服务器端代码推向远程服务器时,它往往不会识别这些更改.我需要杀死主管流程并重新启动.我做错了什么,还是这个标准行为? 解决方案 这是标准行为; Substisord不会检测代码的更改.它仅在他们自己停止或死亡时才重新启动进程. 只需指示Substisord在推动更改时重新启动应用程序即可. supervisorctl restart programname很好,无需杀死和重新启动主管本身. 如果更改了主管配置,请使用supervisorctl update.
4 2023-04-01
编程技术问答社区
如何在supervisord设置一个小组?
因此,我正在设置主管并试图控制多个进程,并且一切都很好,现在我想设置一个组,以便我可以启动/停止不同的过程集,而不是全部或全部.这是我的配置文件的片段. [group:tapjoy] programs=tapjoy-game1,tapjoy-game2 [program:tapjoy-game1] command=python tapjoy_pinger.py -g game1 directory=/go/here/first redirect_stderr=true autostart=true autorestart=true stopasgroup=true killasgroup=true [program:tapjoy-game2] command=python tapjoy_pinger.py -g game2 directory=/go/here/first redirect_stderr=true autostart=true autorestart=true
8 2023-03-28
编程技术问答社区
supervisor.conf默认位置
我试图进行自动部署,包括主管,并通过默认设置路径混淆. 我发现的每个部署方案都使用/etc/supervisor/supervisor.conf和/etc/supervisor/conf.d/没有任何预设和链接,此外,在通过APT-GET安装主管软件包后,此路径确实通过示例配置填充. 在此sudo('apt-get -y install supervisor') put('config/supervisor_gunicorn.conf', '/etc/supervisor/conf.d/gunicorn.conf', use_sudo=True) sudo('supervisorctl reload') 但在supervisorctl中,此路径未指定为默认值,并且假定默认位置在/etc/supervisor.conf so a aroud /etc/supervisor.conf noreferrer">手动 我尝试为主管安装所有可能的方法,但我无法获得结果.
8 2023-03-28
编程技术问答社区