我已经创建了一个artisan命令,它触发一个插入到数据库中的新日期。触发此命令的是我的一个cronjob。代码如下:
public function fire(){
$var = new MyModel;
$var->datetime = new MongoDate();
$var->name = 'Jess';
$var->save();
}我的cronjob是:
* * * * * php /Applications/AMPPS/www/condo/laravel/artisan mycronjobcommand一切看起来都很棒,工作也很完美,然而,我有些担心插入到mongodb中的new MongoDate()日期并不精确到0毫秒,它大约是1毫秒,如下所示:
2014-05-11T15:22:01.806Z
2014-05-11T15:23:01.406Z有没有办法让毫秒数尽可能地接近0?或者甚至死在0毫秒的点上?我担心如果我有一个巨大的数据库,写速度会超过1分钟。
我曾尝试将unix时间戳cronjob到artisan参数中,但artisan将其读取为字符串(日期),而不是时间戳。
谢谢。
发布于 2014-05-11 23:46:12
Linux按顺序或同时运行多个cron作业。如果你想要精确度,你需要编写一个计时器程序来监控时间并以0ms的速度触发你的脚本。
注意:还有其他问题,比如PHP需要时间来启动,而Laravel可能需要30-50毫秒才能启动,这会使你的时间偏离你的目标0ms。
https://stackoverflow.com/questions/23594576
复制相似问题