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