4 پاسخ

task schedulingدر لاراول

سلام و درود دوستان وقتتون بخیر
من در کرنل یک schedule تعریف کردم که مثلا در یک جدول هر دقیقه یک مقداری را وارد کند . خب کد کرنل رو به صورت زیر تغییر دادم .

<?php

namespace App\Console;

use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
use Illuminate\Support\Facades\DB;

class Kernel extends ConsoleKernel
{
    /**
     * The Artisan commands provided by your application.
     *
     * @var array
     */
    protected $commands = [
        //
    ];

    /**
     * Define the application's command schedule.
     *
     * @param  \Illuminate\Console\Scheduling\Schedule  $schedule
     * @return void
     */
    protected function schedule(Schedule $schedule)
    {
        // $schedule->command('inspire')->hourly();
        $schedule->call(function () {
                DB::table('pagesanalytics')->insert([
                    'test1'=>'test1',
                ]);
            })->everyMinute();
    }

    /**
     * Register the commands for the application.
     *
     * @return void
     */
    protected function commands()
    {
        $this->load(__DIR__.'/Commands');

        require base_path('routes/console.php');
    }
}

حالا مشکل من اینه که خود به خود هر دقیقه اجرا نمیشه و من باید حتما دستور php artisan schedule:run رو اجرا کنم . بعد از اجرای دستور یک بار توی دیتابیس یک ریکورد ثبت میشه اما دقیقه بعد اجرا نمیشه .
خب با خودم فکر کردم که از cron لینوکس استفاده کنم که مثلا هر دقیقه دستور run رو اجرا کنه اما مشکل اینجاس که اگر اسکجول های دیگه مثلا هر ۵ دقیقه هم داشته باشم همگی هر یک دقیقه اجرا میشن .

و به طور کل واقعا این قضیه schedule من رو گیج کرده . اگر یک توضیح کامل بدین واقعا ممنونتون میشم .
اطلاعات کلی :
هاست وبسایت هاست اشتراکی هستش cpanel
و لوکال هم سیستم عاملم linux ubuntu هستش
برای هر دو اگر گام به گام توضیح بدین ممنونتون میشم . و اگر در آموزش های آقای موسوی هم جلسه ای هست که این مطلبو گفته باشن هم آدرسشو بگذارین بعد از توضیح دادن ممنونتون میشم .


ثبت پرسش جدید
محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 3 سال پیش مطرح شد
0

سلام
توی لوکال که باید schedule:work بزنی تا اجرا بشه کامل هر بار
برای سرور شما وقتی میگی هر دقیقه اجرا بشه اون schedule ک ساعتی باشه یا روزانه باشه فقط چک میشه توسط برنامت ک ایا نیاز به اجراش هست یا ن و تداخلی براش پیش نمیاد
عملا شما فقط میگی هر دقیقه چک کن کاری هست انجام بدی یا ن
حالا اگر ساعتیه داستان دیگ خودت میتونی cron رو هم روزانه ساعتی پنج دقیقه ای کنی که همخونی داشته باشه با schedule


امیرحسین زارعیان
تخصص : مدیر عامل ،برنامه نویس ،استرات...
@amirzareian 3 سال پیش مطرح شد
0

دوستان کسی هست که بتونه کمک کنه ؟


سبحان دادخواه
تخصص : دانشجوی برنامه نویسی :)
@SobhanDadkhah 3 سال پیش مطرح شد
0

سلام .
این مقاله ای هست که من خودم استفاده کردم
شاید بدرد شما هم بخوره .


امیرحسین زارعیان
تخصص : مدیر عامل ،برنامه نویس ،استرات...
@amirzareian 3 سال پیش مطرح شد
0

سلام خیلی متشکر امکانش هست دوباره لینک رو قرار بدین باز نمیشه


محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 3 سال پیش مطرح شد
0

سلام
توی لوکال که باید schedule:work بزنی تا اجرا بشه کامل هر بار
برای سرور شما وقتی میگی هر دقیقه اجرا بشه اون schedule ک ساعتی باشه یا روزانه باشه فقط چک میشه توسط برنامت ک ایا نیاز به اجراش هست یا ن و تداخلی براش پیش نمیاد
عملا شما فقط میگی هر دقیقه چک کن کاری هست انجام بدی یا ن
حالا اگر ساعتیه داستان دیگ خودت میتونی cron رو هم روزانه ساعتی پنج دقیقه ای کنی که همخونی داشته باشه با schedule


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام