mysql - Bagaimana untuk melakukan pemberitahuan berjadual dan keluaran tepat pada masanya dalam PHP?
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-05-24 11:33:02
0
9
869

Keperluan/senario:

  1. Sebagai contoh, tetapkan artikel untuk diterbitkan pada 2018-5-22 13:51:16.

  2. Beritahu saya dalam tiga hari.

  3. Mesej dipadamkan secara automatik selepas tamat tempoh.

……

Tunggu, permintaan jenis ini adalah untuk melakukan sesuatu secara automatik pada masa tertentu Ini nampaknya tiada kaitan dengan baris gilir Adakah ia memerlukan perisian tengah atau masa lain, atau proses pemastautin atau sesuatu.

Pemahaman saya ialah tugasan yang perlu dilakukan dimasukkan ke dalam satu baris demi baris, dan kemudian proses disegarkan secara berterusan, dan tugasan yang memenuhi nod masa dikeluarkan dan dilaksanakan Adakah ini ideanya?

Ingin tahu apakah penyelesaian matang untuk senario ini dibuat?

Terima kasih ^_^

曾经蜡笔没有小新
曾经蜡笔没有小新

membalas semua(9)
仅有的幸福

Gunakan tugas tertunda, https://github.com/ouqiang/go...

Kaedah pelaksanaan tugas tertunda

  1. capai sendiri, gunakan roda masa atau cerucuk akar kecil

  2. Beritahu dengan ruang kekunci redis

  3. beanstalkd

曾经蜡笔没有小新

Perkara utama poster mestilah DelayQueue, iaitu perkhidmatan baris gilir mesej tertunda. Untuk senario tertentu, sila rujuk:
1 perkhidmatan pembatalan pesanan automatik Taobao
2.
Laksanakan Pemasa berdasarkan kaedah tunggu/beritahu.

阿神

Hanya gunakan program untuk terus memberus = =

伊谢尔伦

Anda boleh menggunakan tugas berjadual crontab untuk menyelesaikan masalah, dan anda boleh mereka bentuk antara muka Php untuk dipanggil setiap hari, jam dan minit.

巴扎黑

Tambah medan masa, dan kemudian buat pertimbangan yang berkaitan pada lapisan model

習慣沉默

Program memberus, tetapi tekanan pangkalan data mesti dipertimbangkan.
Anda boleh menolak semua tugasan ke dalam baris gilir, mengeluarkan skrip daripada baris gilir dalam gelung tak terhingga, membandingkan titik masa dan membuang tugasan ke modul pelaksanaan apabila ia tiba. Jika masa belum tamat, teruskan ke seberang dan tolak ke dalam barisan.

Dua barisan. Contohnya, baris gilir untuk dilaksanakan: tasteList;
Bahagikan tugas mendapatkan dan melaksanakan tugas kepada proses yang berbeza:
1 Mendapatkan semula tugasan: Skrip berpusing untuk mengeluarkan tugasan daripada tasteList, menentukan titik masa dan menolak tugasan ke baris gilir runList apabila tiba masanya. naik. Jika ia tidak mencukupi, teruskan menolaknya ke dalam tasteList;

Apabila volum besar, anda hanya boleh membuka beberapa proses mengikut keperluan, dan tidak perlu memikirkan tentang pelaksanaan berulang.

phpcn_u1582

Hanya gunakan fungsi tugas berjadual sistem untuk mencetuskan skrip. Anda boleh memutuskan apa yang dilakukan oleh skrip dan cara melakukannya Anda juga boleh merujuk kepada jawapan di atas.
Secara umumnya, skrip frekuensi tinggi sudah memadai (contohnya, sekali seminit atau sekali setiap 5 minit, anda boleh menilai masa dalam skrip dan memanggil tugasan dengan frekuensi yang berbeza tugasan yang dijadualkan secara berasingan untuk setiap skrip kekerapan.

phpcn_u1582
websocket 

Atau gunakan workerman swoolefungsi tugas berjadual

刘奇

Iaitu, anda menyimpan data dan kemudian membuat skrip untuk mengesannya secara berterusan. . Contohnya, mengesan sekali setiap 1 minit

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan