有一个定制的artisan
命令,该命令可解析一些数据并将其写入MySQL DB。我正在手动运行此命令,因此没有任何schedules
或cron作业。
保存数据后,我可以使用一段时间。通常,它的使用时间为10到20分钟。如果在保留后重新启动计算机,则可以处理一个小时左右的数据。之后,该表将自动清空,就像我truncate
一样。
我的自定义命令在其构造函数中具有truncate
命令,因此解析器清除表并重新填充表:
DB::statement('truncate clauses');
但是我不认为这是原因,因为cron不会运行此命令或其他命令(即使这样做,我的表中也会包含正确的数据)。
所有其他表都照常保存数据。
我想知道是什么原因导致这种奇怪的行为?
我的环境:新鲜的Laravel 5.2.31,Homestead,Vagrant 1.8.1。
最佳答案
artisan
命令在应用程序中构造所有现有命令,无论它执行什么实际命令。如果在构造函数中有截断,则每次cron击中artisan时,或者执行简单的artisan route:list
或任何其他artisan命令时,截断都会运行。
要对此进行测试,只需在构造函数中创建一个简单的命令exit
并运行artisan list
。