Laravel4.2中自定义命令的Cron作业
我知道现在有Laravel5。*但出于许多原因,我使用Laravel4.2 我有一个自定义命令,在fire()方法中,我导入一个文件并在数据库中为信息种子,因此我的类类似于Laravel4.2中自定义命令的Cron作业,laravel,laravel-4,cron,task,Laravel,Laravel 4,Cron,Task,我知道现在有Laravel5。*但出于许多原因,我使用Laravel4.2 我有一个自定义命令,在fire()方法中,我导入一个文件并在数据库中为信息种子,因此我的类类似于 class SeedDataFile extends Command { protected $name = 'import:file'; public function fire(){ $command = 'mongoimport --db things --collection users -
class SeedDataFile extends Command {
protected $name = 'import:file';
public function fire(){
$command = 'mongoimport --db things --collection users --type csv --file file.csv --headerline';
$result = exec($command, $output, $return);
}
}
我希望文件是种子数据,即每12小时一次(考虑到每12小时一次的文件会随着新数据的变化而变化),但作为用户,我不希望在终端中键入以下命令:
php artisan import:file
…每12小时一次(我只想将新文件上传到我的项目中)
因此,cron工作是我完成所有工作的地方,但我不想这样做:
crontab -e
并编辑该文件
我想在代码中的某个地方的一个类o中设置命令的时间表,并自动地每天运行自定义命令,直到确定日期为止
这可能吗?或者我必须配置crontab文件?您可以看看这个包,说明中说它正是您想要的
照原样,Laravel 4.2不提供此类功能。事实上,无论您使用的是哪个版本,都需要为此功能设置1个cron作业 较新版本的Laravel确实提供了,但它们仍然要求您以Laravel的命令
php artisan schedule:run
可用的最高频率设置1个cron作业(Windows上的调度程序)
如果您想在代码(而不是cron文件)中安排命令,您可以复制更新版本的Laravel所做的工作
1.您将创建一个“master”命令,我们将其称为TaskSchedulerCommand
,假设其签名为php artisan schedule
2.您可以在TaskSchedulerCommand
上以最高频率创建cronjob,如下所示:****php/path/to/artisan schedule`
3.您可以在
taskschedulercommand
中编写其他命令的所有调度逻辑,谢谢!我知道Laravel的最新版本有这个功能,但现在我使用的是4.2,谢谢。在新项目中,我将使用新版本。:)非常感谢。这正是我需要的。!:)很乐意帮忙!请勾选答案,以便其他人可以从中受益