Python多处理在midd中消亡

2024-06-16 10:27:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我在CentOS VPS服务器上运行python程序。过去几个月我一直在运行这个程序&我从一开始就面临这个问题。你知道吗

我通常从crontab运行这个python程序。程序每天按顺序执行以下操作。你知道吗

  1. 连接到MySQL数据库并更新某些特定信息。你知道吗
  2. 使用multiprocessing划分为8-10个python实例。你知道吗
  3. 每个实例都使用Xvfb(这是运行firefox所必需的)运行虚拟显示。你知道吗
  4. 每个实例运行单独的firefox浏览器。你知道吗
  5. 每个实例访问一个网站来检查一些数据的更新(使用selenium),如果得到任何更改,它就会更新到数据库。你知道吗
  6. 检查每个实例后关闭firefox

如果运行正常,所有这些过程通常需要60分钟到90分钟。但问题是,它并不是每次都运行良好。有时它运行,有时它在中间死亡。我也从来没有找到任何具体的原因,为什么这些程序死亡,我该怎么办。当我检查topps时,我发现python程序不存在,firefox&;Xvfb仍然像傻瓜一样等待python命令。你知道吗

可能由于过载或其他原因被系统杀死。有时重新启动系统会有所帮助。但是,我知道这不是个好办法。这就是为什么我试着运行这个程序,将niceness值降低到最低级别。但是,程序可能不能以负的niceness值运行,所以同样的问题仍然存在。你知道吗

F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
0 S   500 12673 12655  0  80   0 - 54957 wait   ?        00:00:00 python
1 S   500 12683 12673  0  80   0 - 62766 sk_wai ?        00:00:18 python
1 S   500 12704 12673  0  80   0 - 59295 sk_wai ?        00:00:17 python
1 S   500 12816 12673  0  80   0 - 59230 sk_wai ?        00:00:16 python
1 S   500 12898 12673  0  80   0 - 59400 sk_wai ?        00:00:16 python
1 S   500 12988 12673  0  80   0 - 59491 sk_wai ?        00:00:17 python
1 S   500 13072 12673  0  80   0 - 59151 sk_wai ?        00:00:17 python

同样,我在我的windows8桌面上运行了这个程序,它最多可以运行26个实例(我从未尝试过更多:)。由于一次运行的实例太多,页面加载变得很慢。这就是为什么我试图通过拆分作业在3vps服务器上运行这个程序。你知道吗

另外,我使用pythonfirefoxseleniumXvfb和单个进程运行另一个程序,它运行了10-12个小时,没有任何问题。同样,这个程序做的事情和第一个几乎一样,但唯一的区别是它只运行一个进程。而且,它从来不会像第一次那样制造任何麻烦。你知道吗

有没有什么方法可以确保每次程序都能正常运行?你知道吗


Tags: 实例程序服务器数据库进程vps系统selenium
1条回答
网友
1楼 · 发布于 2024-06-16 10:27:07

我也面临同样的问题。在做了大量的研究之后,我得出结论,Firefox不是多处理的好选择。最好使用PhantomJSChrome驱动程序。在我的情况下,当我看到ps或top时,我得到的是僵尸Firefox进程。你知道吗

相关问题 更多 >