How to run Laravel schedule command as Cron Job online - laravel

I’m setting up a Cron Job for my laravel Schedule in CpaneL but it's not working. Please, i need help on how to do schedule:run in cPanel Cron Job.
This is what i have tried in cPanel Cron Job
/usr/local/bin/php7 /home/cattonli/public_html/artisan schedule:run >> /dev/null 2>&1
php artisan schedule:run works fine offline, but i can't get it to work offline.

I Hope "cattonli" is the username.
Try Below if it works for you.
If you have created "laravelapp" folder inside project folder try
/usr/local/bin/php7/bin/php-cli/home/cattonli/public_html/{project_folder_name_if_any_or_skip}/laravelapp/artisan schedule:run >> /dev/null 2>&1

Related

Can't run a task schedule in Laravel using cron job

we prepared functionality to run automatically, while it is working in the local server using the terminal but not in the server.
what is wrong with this cron command?
/usr/local/bin/php /home/path_of_server/artisan schedule:run >> null 2>&1
dev is missing in your command.
It should be like this:
/usr/local/bin/php /home/path_of_server/artisan schedule:run >> /dev/null 2>&1

How can I run artisan Command to work In background laravel

I want to run the php artisan schedule:work command but the issue is that when i close putty it terminate the operation while i need it to remain processing on server
my server is running Ubuntu 20.4.1 LTS
Actually, the command schedule:work is for local development environment.
While you want to run your scheduler on server you should add a cron job like the following:
First, Go to your terminal, ssh into your server, cd into your project and run this command:
crontab -e
This will open the server Crontab file, paste the code below into the file, save and then exit.
* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1
Here we added one Cron job which executes every minute to start the Laravel scheduler.
Don't forget to replace /path-to-your-project with your project path.
Use "nohup php artisan schedule:work"
Go to your project path e.g. cd /var/www/mywebsite
Command this
crontab -e
choose editor nano number 1 if it shows a list of editors.
below of file add this.
* * * * * php /var/www/mywebsite/artisan schedule:run >> /dev/null 2>&1
save it CTR+S

Task scheduler in laravel homestead

I'm trying to get scheduled tasks to work in homestead.
First I created a command in called "randomUserCreatesubmission".
protected $signature = 'command:randomusercreatesubmission';
This command works just fine.
I then added it to a schedule in Kernel.php
protected function schedule(Schedule $schedule)
{
$schedule->command('disposable:update')->weekly();
$schedule->command('command:randomusercreatesubmission')->everyMinute();
}
Then, after SSHing into homestead, I run the command
php artisan schedule:run
This returns the following:
Running scheduled command: '/usr/bin/php7.4' 'artisan' command:randomusercreatesubmission > '/dev/null' 2>&1
and it will run the "randomUserCreatesubmission" command once, immediately. However, I want it to run every minute, and it does not do that.
Why is this happening?
You need to setup a cron job. You can run in your terminal
crontab -e
then add to the end of your crontab
* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1
and this command will run every minute.
Don't forget to start scheduler by adding below statement into crontab -e
* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1
Familiarize yourself with the official Laravel Scheduler documentation.

Laravel 5.4 Cron Job for Mail Queue not working on AWS EC2 instance

I have created a cron job on my EC2 instance for sending email from queue. It shows running the corn command every minute but I see tasks remain in my jobs table. I've already searched and tried existing solutions but failed to figure out the problem. Although queue working on my local server when I run
php artisan schedule:run
My code in kernel:
$schedule->command('queue:work')
->everyMinute()
->withoutOverlapping();
Command I added in the file using crontab -e
* * * * * /usr/bin/php /var/www/html/prod_back/artisan schedule:run >> /dev/null 2>&1
This is the output I see in terminal when I run sudo service cron status
May 07 13:50:01 ip-172-31-39-27 CRON[20260]: pam_unix(cron:session): session opened for user ubuntu by (uid=0)
May 07 13:50:01 ip-172-31-39-27 CRON[20261]: (ubuntu) CMD (/usr/bin/php /var/www/html/prod_back/artisan schedule:run >> /dev/null 2>&1)
May 07 13:50:01 ip-172-31-39-27 CRON[20260]: pam_unix(cron:session): session closed for user ubuntu
Finally, I solved the problem. I got a community help that pointed out my cron command is wrong. I was running schedule command instead of queue command. So I changed it from
* * * * * /usr/bin/php /var/www/html/prod_back/artisan schedule:run >> /dev/null 2>&1
to
* * * * * /usr/bin/php /var/www/html/prod_back/artisan queue:work >> /dev/null 2>&1
One more thing, I also had to run below command to reload my env changes from sync to database for queue driver.
/usr/bin/php /var/www/html/prod_back/artisan config:cache
Please go to this link below and follow the checklist for diagnosing your specific problem in this regard.
https://stackoverflow.com/questions/58738157/laravel-queue-with-aws-elastic-beanstalk

Laravel Scheduling cron job on host

I have some task and my host is Cpanel. When I try to add this command have an error .
Remove leading asterisks in command field. Cpanel will add them internally from inputs above.
So, the command input should only contain
php /path/to/artisan schedule:run >> /dev/null 2>&1
And as #Ben Swinburne correctly mentioned in his comment:
and obviously replace /path/to/artisan with the actual path too.

Resources