Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel4.2中自定义命令的Cron作业_Laravel_Laravel 4_Cron_Task - Fatal编程技术网

Laravel4.2中自定义命令的Cron作业

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 -

我知道现在有Laravel5。*但出于许多原因,我使用Laravel4.2

我有一个自定义命令,在fire()方法中,我导入一个文件并在数据库中为信息种子,因此我的类类似于

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,谢谢。在新项目中,我将使用新版本。:)非常感谢。这正是我需要的。!:)很乐意帮忙!请勾选答案,以便其他人可以从中受益