Cara menggunakan Elasticsearch untuk melaksanakan penjadualan tugas masa nyata dalam PHP

WBOY
Lepaskan: 2023-07-10 12:26:01
asal
1143 orang telah melayarinya

Kaedah menggunakan Elasticsearch untuk melaksanakan penjadualan tugas masa nyata dalam PHP

Ikhtisar:
Penjadualan tugas masa nyata ialah salah satu keperluan yang sangat biasa dalam pembangunan web. Sebagai enjin carian dan analisis teragih yang berkuasa, Elasticsearch juga menyediakan fungsi dan API yang kaya, sesuai untuk penjadualan tugas masa nyata. Artikel ini akan memperkenalkan cara menggunakan PHP dan Elasticsearch untuk melaksanakan penjadualan tugas masa nyata dan menyediakan contoh kod yang sepadan.

1. Persediaan
Sebelum anda bermula, pastikan anda telah berjaya memasang PHP dan Elasticsearch, dan menggunakan komposer untuk memasang perpustakaan klien Elasticsearch. Anda boleh menggunakan arahan berikut untuk memasang:

composer require elasticsearch/elasticsearch
Salin selepas log masuk

2. Sambung ke Elasticsearch
Mula-mula, kita perlu menyambung ke Elasticsearch. Contoh pelanggan Elasticsearch boleh dibuat melalui kod berikut:

<?php
require 'vendor/autoload.php';

use ElasticsearchClientBuilder;

$client = ClientBuilder::create()->build();
Salin selepas log masuk

3. Buat indeks
Seterusnya, kita perlu mencipta indeks dalam Elasticsearch untuk menyimpan maklumat tugas. Indeks boleh dibuat menggunakan kod berikut:

<?php
$params = [
    'index' => 'tasks',
    'body' => [
        'settings' => [
            'number_of_shards' => 1,
            'number_of_replicas' => 0,
        ],
        'mappings' => [
            'properties' => [
                'task_name' => [
                    'type' => 'text',
                ],
                'task_time' => [
                    'type' => 'date',
                    'format' => 'yyyy-MM-dd HH:mm:ss',
                ],
                'task_status' => [
                    'type' => 'keyword',
                ],
            ],
        ],
    ],
];

$response = $client->indices()->create($params);
Salin selepas log masuk

4. Tambah tugasan
Kini, kita boleh menambah tugasan pada indeks yang dibuat. Anda boleh menggunakan kod berikut untuk menambah tugasan:

<?php
$params = [
    'index' => 'tasks',
    'body' => [
        'task_name' => 'task1',
        'task_time' => '2022-01-01 10:00:00',
        'task_status' => 'pending',
    ],
];

$response = $client->index($params);
Salin selepas log masuk

5. Tugasan pertanyaan
Kami boleh menggunakan API pertanyaan Elasticsearch untuk menanyakan tugas dengan syarat yang ditetapkan. Kod berikut menunjukkan cara untuk membuat pertanyaan tugasan dengan status "pending":

<?php
$params = [
    'index' => 'tasks',
    'body' => [
        'query' => [
            'term' => [
                'task_status' => 'pending',
            ],
        ],
    ],
];

$response = $client->search($params);
Salin selepas log masuk

6. Kemas kini status tugas
Semasa tugasan sedang dijalankan, kami mungkin perlu mengemas kini status tugasan. Kod berikut menunjukkan cara mengemas kini tugasan dengan status "pending" kepada "selesai":

<?php
$params = [
    'index' => 'tasks',
    'id' => '1',
    'body' => [
        'doc' => [
            'task_status' => 'completed',
        ],
    ],
];

$response = $client->update($params);
Salin selepas log masuk

7. Padamkan tugasan
Selepas tugasan selesai, anda boleh menggunakan kod berikut untuk memadamkan tugasan daripada indeks:

<?php
$params = [
    'index' => 'tasks',
    'id' => '1',
];

$response = $client->delete($params);
Salin selepas log masuk

Kesimpulan:
Dengan memanfaatkan PHP dan Dengan Elasticsearch, kami boleh melaksanakan penjadualan tugas masa nyata dengan mudah. Melalui contoh kod di atas, kita boleh belajar cara menyambung ke Elasticsearch, mencipta indeks, menambah tugas, tugasan pertanyaan, mengemas kini status tugas dan memadamkan tugas. Saya harap artikel ini dapat membantu pembaca lebih memahami dan menggunakan Elasticsearch untuk melaksanakan penjadualan tugas masa nyata.

Atas ialah kandungan terperinci Cara menggunakan Elasticsearch untuk melaksanakan penjadualan tugas masa nyata dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan