2017-01-13 20 views
0

Я знаю, что есть Laravel 5. * сейчас, но по многим причинам я использую Laravel 4.2Cron работы моей пользовательской команды в Laravel 4,2

У меня есть пользовательские команды, и в методе огня(), я импортировать файл и засеять информацию в моей базе данных, так что мой класс некоторые, как этот

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 часов (я просто хочу загрузить новый файл в свой проект).

Так хрон, где я делать всю работу, но я не хочу, чтобы это сделать:

crontab -e 

и редактировать файл

Я хочу, чтобы настроить график моей команды в одном классе o где-то в коде, и автоматически пользовательская команда запускается каждый день до определенной даты.

Возможно ли это? Или мне нужно настроить файл crontab?

ответ

1

Вы могли бы взглянуть на этот пакет, описание говорит, что это делает именно то, что вы хотите

https://github.com/Indatus/dispatcher

+1

Спасибо! Это именно то, что мне нужно.! :) – SundayGirl

+0

Рад помочь! Пожалуйста, отметьте как ответ, чтобы другие люди могли извлечь выгоду из этого – Loek

0

Как Laravel 4,2 не предлагает этот тип функциональности. На самом деле вам нужно настроить работу 1 cron для этой функции независимо от используемой вами версии.

Новые версии Laravel действительно предоставляют this functionality, но они по-прежнему требуют, чтобы вы установили 1 cron job (scheduler on Windows) на самой высокой частоте, доступной для команды Laravel php artisan schedule:run.

Если вы хотите иметь планирование своих команд в своем коде (а не в cron-файле), вы можете реплицировать то, что делают более новые версии Laravel.

1. вы можете создать команду «мастер», давайте назовем его TaskSchedulerCommand и скажем, что это подпись php artisan schedule.

2. вы можете создать cronjob на самой высокой частоте на TaskSchedulerCommand, как это: * * * * * PHP/путь/к/ремесленник schedule`

3. можно было бы написать все планирование логика других команд в пределах TaskSchedulerCommmand

+0

Спасибо! Я знаю, что у самой последней версии Laravel есть это, но теперь я использую 4.2 Но спасибо. В новых проектах я буду использовать новую версию. :) – SundayGirl

 Смежные вопросы

  • Нет связанных вопросов^_^