Selasa, 13 November 2018

Cara Menerapkan Laravel Horizon

Laravel Horizon

    
pengantar
    
Instalasi
        
Konfigurasi
        
Otentikasi Dasbor
    
Menjalankan Horizon
        
Menyebarkan Horizon
    
Tag
    
Notifikasi
    
MetrikpengantarHorizon menyediakan dasbor yang indah dan konfigurasi berbasis kode untuk Laravel Anda yang didukung antrian. Horizon memungkinkan Anda untuk dengan mudah memantau metrik utama sistem antrian Anda seperti throughput pekerjaan, waktu proses, dan kegagalan pekerjaan.Semua konfigurasi pekerja Anda disimpan dalam satu file konfigurasi sederhana, memungkinkan konfigurasi Anda untuk tetap berada di kontrol sumber tempat seluruh tim Anda dapat berkolaborasi.Instalasi


Cara Menerapkan Laravel Horizon
    
Karena penggunaan sinyal proses async, Horizon membutuhkan PHP 7.1+. Kedua, Anda harus memastikan bahwa driver antrian Anda diatur untuk mem-redis dalam file konfigurasi antrian Anda.Anda dapat menggunakan Composer untuk menginstal Horizon ke dalam proyek Laravel Anda:komposer membutuhkan laravel / horizonSetelah menginstal Horizon, publikasikan asetnya menggunakan vendor: publikasikan perintah Artisan:penjual artisan php: publikasikan --provider = "Laravel \ Horizon \ HorizonServiceProvider"KonfigurasiSetelah mempublikasikan aset Horizon, file konfigurasi utamanya akan berlokasi di config / horizon.php. File konfigurasi ini memungkinkan Anda untuk mengonfigurasi opsi pekerja Anda dan setiap opsi konfigurasi menyertakan deskripsi dari tujuannya, jadi pastikan untuk menjelajahi file ini secara menyeluruh.Opsi SaldoHorizon memungkinkan Anda memilih dari tiga strategi penyeimbang: sederhana, otomatis, dan salah. Strategi sederhana, yang merupakan standar, membagi pekerjaan yang masuk secara merata antara proses:'keseimbangan' => 'sederhana',Strategi otomatis menyesuaikan jumlah proses pekerja per antrian berdasarkan beban antrian saat ini. Misalnya, jika antrian notifikasi Anda memiliki 1.000 pekerjaan menunggu sementara antrean render Anda kosong, Horizon akan mengalokasikan lebih banyak pekerja ke antrean notifikasi Anda hingga kosong. Ketika opsi keseimbangan disetel ke false, perilaku Laravel default akan digunakan, yang memproses antrean dalam urutan yang tercantum dalam konfigurasi Anda.Otentikasi DasborHorizon mengekspos dasbor di / horizon. Secara default, Anda hanya akan dapat mengakses dasbor ini di lingkungan lokal. Untuk menentukan kebijakan akses yang lebih spesifik untuk dasbor, Anda harus menggunakan metode Horizon :: auth. Metode auth menerima callback yang harus mengembalikan benar atau salah, menunjukkan apakah pengguna harus memiliki akses ke dasbor Horizon. Biasanya, Anda harus memanggil Horizon :: auth dalam metode boot AppServiceProvider Anda:Horizon :: auth (function ($ request) {
    
// mengembalikan true / false;}); 


Cara Menerapkan Laravel Horizon Menjalankan HorizonSetelah Anda mengkonfigurasikan pekerja Anda dalam file konfigurasi config / horizon.php, Anda dapat memulai Horizon menggunakan perintah Artisan horizon. Perintah tunggal ini akan memulai semua pekerja yang Anda konfigurasi:php artisan horizonAnda dapat menjeda proses Horizon dan memerintahkannya untuk melanjutkan memproses pekerjaan menggunakan cakrawala: jeda dan horizon: lanjutkan perintah Artisan:php artisan horizon: jedaphp artisan horizon: lanjutkanAnda dapat mengakhiri proses master Horizon pada mesin Anda menggunakan cakrawala: mengakhiri perintah Artisan. Pekerjaan apa pun yang sedang diproses Horizon akan diselesaikan dan kemudian Horizon akan keluar:php artisan horizon: hentikanMenyebarkan HorizonJika Anda menerapkan Horizon ke server langsung, Anda harus mengonfigurasi monitor proses untuk memantau perintah horizon php artisan dan memulai ulang jika berhenti tiba-tiba. Saat menerapkan kode baru ke server Anda, Anda perlu menginstruksikan proses master Horizon untuk mengakhiri sehingga dapat dimulai kembali oleh monitor proses Anda dan menerima perubahan kode Anda.Konfigurasi SupervisorJika Anda menggunakan monitor proses Pengawas untuk mengelola proses horizon Anda, file konfigurasi berikut harus cukup:[program: horizon]process_name =% (nama_program) scommand = php /home/forge/app.com/artisan horizonautostart = trueautorestart = truepengguna = menemparedirect_stderr = truestdout_logfile = / home / forge / app.com / horizon.log

    
Jika Anda tidak nyaman mengelola server Anda sendiri, pertimbangkan untuk menggunakan Laravel Forge. Menerapkan ketentuan PHP 7+ server dengan semua yang Anda butuhkan untuk menjalankan aplikasi Laravel yang modern dan canggih dengan Horizon.





TagHorizon memungkinkan Anda untuk menetapkan "tag" ke pekerjaan, termasuk kiriman surat, siaran acara, pemberitahuan, dan pendengar acara yang diantrekan. Bahkan, Horizon akan secara cerdas dan otomatis menandai sebagian besar pekerjaan tergantung pada model Eloquent yang melekat pada pekerjaan. Misalnya, lihat pekerjaan berikut:<? phpnamespace App \ Pekerjaan;gunakan App \ Video;gunakan Illuminate \ Bus \ Queueable;gunakan Illuminate \ Queue \ SerializesModels;gunakan Illuminate \ Queue \ InteractsWithQueue;gunakan Illuminate \ Contracts \ Queue \ ShouldQueue;gunakan Illuminate \ Foundation \ Bus \ Dispatchable;kelas RenderVideo mengimplementasikan ShouldQueue{
    
menggunakan Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    
/ **
     
* Contoh video.
     
*
     
* @var \ App \ Video
     
* /
    
video $ publik;

    
/ **
     
* Buat instance pekerjaan baru.
     
*
     
* @param \ App \ Video $ video
     
* @return batal
     
* /
    
fungsi publik __construct (Video $ video)
    
{
        
$ this-> video = $ video;
    
}

    
/ **
     
* Jalankan pekerjaan.
     
*
     
* @return batal
     
* /
    
menangani fungsi publik ()
    
{
        
// //
    
}}Jika pekerjaan ini diantrekan dengan instance App \ Video yang memiliki id 1, maka secara otomatis akan menerima aplikasi Tag \ Video: 1. Ini karena Horizon akan memeriksa properti pekerjaan untuk setiap model Eloquent. Jika model Eloquent ditemukan, Horizon akan secara cerdas menandai pekerjaan menggunakan nama kelas model dan kunci utama:$ video = App \ Video :: find (1);App \ Jobs \ RenderVideo :: dispatch ($ video);Menandai Secara ManualJika Anda ingin secara manual menentukan tag untuk salah satu objek antrian Anda, Anda dapat menetapkan metode tag di kelas:kelas RenderVideo mengimplementasikan ShouldQueue{
    
/ **
     
* Dapatkan tag yang harus ditugaskan ke pekerjaan.
     
*
     
* @return array
     
* /
    
tag fungsi publik ()
    
{
        
kembali ['render', 'video:'. $ this-> video-> id];
    
}}Notifikasi

    
Catatan: Sebelum menggunakan notifikasi, Anda harus menambahkan paket guzzlehttp / guzzle Composer ke proyek Anda. Saat mengonfigurasi Horizon untuk mengirim pemberitahuan SMS, Anda juga harus meninjau prasyarat untuk driver pemberitahuan Nexmo.Jika Anda ingin diberitahu ketika salah satu antrian Anda memiliki waktu tunggu yang lama, Anda dapat menggunakan metode Horizon :: routeMailNotificationsTo, Horizon :: routeSlackNotificationsTo, dan Horizon :: routeSmsNotificationsTo. Anda dapat memanggil metode ini dari AppServiceProvider aplikasi Anda:Horizon :: routeMailNotificationsTo ('example@example.com ');Horizon :: routeSlackNotificationsTo ('slack-webhook-url', '#channel');Horizon :: routeSmsNotificationsTo ('15556667777');Mengonfigurasi Pemberitahuan Menunggu Batas WaktuAnda dapat mengkonfigurasi berapa detik yang dianggap "menunggu lama" dalam file konfigurasi config / horizon.php Anda. Opsi konfigurasi menunggu dalam file ini memungkinkan Anda mengontrol ambang tunggu panjang untuk setiap kombinasi koneksi / antrian:'menunggu' => [
    
'redis: default' => 60,],MetrikHorizon menyertakan dasbor metrik yang memberikan informasi tentang pekerjaan Anda dan waktu tunggu antrian dan throughput. Untuk mengisi dasbor ini, Anda harus mengonfigurasikan perintah Artisan snapshot Horizon untuk dijalankan setiap lima menit melalui penjadwal aplikasi Anda:/ **
 
* Tentukan jadwal perintah aplikasi.
 
*
 
* @param \ Illuminate \ Console \ Scheduling \ Jadwal $ jadwal
 
* @return batal
 
* /jadwal fungsi terlindungi (Jadwal $ jadwal){
    
$ schedule-> command ('horizon: snapshot') -> everyFiveMinutes ();}




sumber : https://laravel.com/docs/5.7/horizon

Tidak ada komentar:

Posting Komentar

Tutorial CRUD pada Laravel 5.5

Tutorial CRUD pada Laravel 5.5 (Lengkap) December 19, 2017 laravel , php , tutorial , web , web series Halo sobat kode...