我已经创建了一个运行良好的php/mysql scraper,并且不知道如何最有效地将其作为cron作业运行.
有300个网站,每个网站都有20到200页被刮掉.刮掉所有站点需要4-7个小时(取决于网络延迟和其他因素).刮刀需要每天完成一次完整的运行.
我应该将其作为1个cron作业运行,运行整个4-7小时,或者每小时运行7次,或者每10分钟运行一次直到完成?
该脚本设置为从cron运行,如下所示:
while($starttime+600 > time()){
do_scrape();
}
Run Code Online (Sandbox Code Playgroud)
这将运行do_scrape()函数,该函数一次擦除10个URL,直到(在这种情况下)600秒已经过去.do_scrape可能需要5到60秒才能运行.
我在这里问我因为我无法在网上找到关于如何运行这个的任何信息,并且对于每天运行这个有点警惕,因为php并不是真的被设计为在7小时内作为单个脚本运行.
我用vanilla PHP/mysql编写了它,它运行在减少debian VPS上,只安装了lighttpd/mysql/php5.我已经运行它超时6000秒(100分钟)没有任何问题(服务器没有倒下).
任何有关如何执行此任务的建议表示赞赏.我应该注意什么......?还是我要执行这一切都错了?
谢谢!
我正在尝试使用 cloudfare 工作人员在将响应发送到客户端之前将 2 个 cookie 键/值对添加到响应中。
不幸的是,cloudflare 工作人员的所有文档都说使用 response.headers.set('Set-Cookie',xxx) 函数来设置 cookie 值:
let response = await fetch(request);
response = new Response(response.body, response);
response.headers.set('Set-Cookie', "val1=x; Expires=Wed, 21 Oct 2020 07:28:00 GMT; Path='/';");
return response;
Run Code Online (Sandbox Code Playgroud)
这仅允许您设置一个 cookie 标头,如果调用两次只会覆盖现有的标头。
我试过两次调用该函数,只有最后一个值进来:
response.headers.set('Set-Cookie', "val1=1; Expires=Wed, 21 Oct 2020 07:28:00 GMT; Path='/';");
response.headers.set('Set-Cookie', "val2=2; Expires=Wed, 21 Oct 2020 07:28:00 GMT; Path='/';");
Run Code Online (Sandbox Code Playgroud)
我尝试在一个标题中传递 2 个 cookie,用逗号分隔,但只有一个进来:
response.headers.set('Set-Cookie', "val1=1; Expires=Wed, 21 Oct 2020 07:28:00 GMT; Path='/';, val2=2; Expires=Wed, 21 Oct 2020 07:28:00 GMT; Path='/';");
Run Code Online (Sandbox Code Playgroud)
我尝试传递 2 个 …