[2019-1-24] 定时任务一直不退出把内存占满的问题

这篇文讲什么

讲我用定时任务 crontab 遇到程序不终止并且占满内存的问题。
这篇文只提出了问题,没有解决方法。等我解决了再补充,现在纯粹是分享一下。
如果你知道怎么解决可以在下面留言。

这篇文对谁有用?有什么用?

对谁有用?:程序员
有什么用?:┑( ̄Д  ̄)┍

正文

我在用 cronjob 定时执行抓取 Instagram 图片的程序:

0 * * * * /bin/bash -l -c 'cd /var/www/insta-craw && ./loop_user.rb >> /var/www/crawl_instagram_log/cron_standard.log 2>> /var/www/crawl_instagram_log/cron_err.log'

cron 是用 whenever gem 生成的语法,我没有手写这里的语法。
貌似写的是1个小时一次。这条命令的 0 * * * * 我也没看懂。

这个任务是跑一个 ruby 程序,
然后 ruby 程序会把 Rails 程序带起来做后续操作。

定时任务在一台 1G 内存 25G 硬盘的 Digital Ocean 机器上面跑(5美金一个月)
这台机器上有 1c7.me 和 yuzhu.me 外加这个定时任务,就这3个程序。

实际结果:
1c7.me 和 yuzhu.me 都无法访问了,提示 mysql 3306 的错误。
硬盘没满。

htop 命令发现内存和 swap 都完全满了。
杀掉定时任务的进程就好了。

问题

代码里也没有写任何死循环的东西。为什么进程一直不退出?
搞得我现在博客和 yuzhu.me 经常挂掉。要手动去服务器杀进程,非常麻烦。

[2019-1-24] 定时任务一直不退出把内存占满的问题
Share this

Subscribe to 1c7 的博客