Maison  >  Article  >  développement back-end  >  php-resque : système de tâches en arrière-plan basé sur Redis

php-resque : système de tâches en arrière-plan basé sur Redis

步履不停
步履不停original
2019-06-24 17:06:133125parcourir

php-resque : système de tâches en arrière-plan basé sur Redis

Pourquoi utiliser php-resque ?

php-resque est un système de tâches en arrière-plan léger basé sur Redis avec une conception fonctionnelle simple et une configuration flexible. Comparé au système MQ, qui est vaste et complet, celui-ci semble petit et beau.

division des rôles php-resque

  • Job définit les tâches et est responsable d'une logique métier spécifique.
  • File d'attente, responsable du stockage/récupération du travail
  • Le travailleur prend le travail de la file d'attente pour l'exécuter. Généralement, en mode PHP CLI, il s'exécute en mode démon en arrière-plan.

Utiliser

installer

  • Si le téléchargement est lent, vous pouvez configurer le miroir domestique du compositeur
composer config -g repo.packagist composer https://packagist.phpcomposer.com
  • installer php-resque

ancienne version

Composer : Ce package est abandonné et n'est plus maintenu. L'auteur suggère d'utiliser le package resque/php-resque à la place 🎜>

Write Job

resque/php-resqueDemoJob.php

composer require  "chrisboulton/php-resque 1.2"

<.>

Opération de mise en file d'attente

composer require resque/php-resque

Code du travailleur

resque-worker.php

<?php
class DemoJob
{
    public function perform()
    {
        // Work work work
        //echo $this->args['name'];
    }
}

Démarrer le travailleur

Les variables d'environnement de

sont :

- Ceci est nécessaire et déterminera les tâches que le travailleur effectuera. Les plus importantes viennent en premier, comme QUEUE=notify,mail,log . Il peut également être défini sur QUEUE=* pour exécuter toutes les tâches.

php-resque

– Facultatif, utilisé pour charger des fichiers. Vous pouvez le définir sur APP_INCLUDE=require.php et introduire toutes les classes de travaux dans require.php.
  • QUEUE

    – Définissez le nombre de travailleurs, la valeur par défaut est 1 COUNT=5.
  • APP_INCLUDE

    – Définissez l'adresse IP et le port de Redis. S’il n’est pas défini, la valeur par défaut est de se connecter à localhost:6379.
  • COUNT

    , VERBOSE – Définir le journal, VERBOSE=1.
  • REDIS_BACKEND

    - Un journal plus détaillé, qui peut être ouvert et consulté lorsque VVERBOSE=1 débogue.
  • LOGGING

    – L'intervalle auquel le travailleur vérifie la file d'attente. La valeur par défaut est de cinq secondes. INTERVAL=5.
  • VVERBOSE

    - Si vous êtes un agent de facturation, vous pouvez spécifier PIDFILE pour écrire le pid, par exemple, PIDFILE=/var/run/resque.pid.
  • INTERVAL

    Vous pouvez lancer la resque en arrière-plan pour l'exécution. Ou utilisez simplement
  • .
  • PIDFILE

    Exemple
<?php

Resque::setBackend(&#39;localhost:6379&#39;);
$args = array(
      &#39;name&#39; => 'hanmeimei',
    );
Resque::enqueue('default', DemoJob::class, $args);
  • À ce stade, l'installation et l'utilisation de php-resque sont terminées. BACKGROUNDphp resque.php &Les chapitres suivants sont des plug-ins d'outils, à titre de référence uniquement.

  • Interface

    Surveiller l'état d'exécution de PHP-Resque

    Installation

    <?php
    $redis_dsn = '127.0.0.1:6379';
    putenv("REDIS_BACKEND=$redis_dsn");
    // 引入队列的入口程序
    $resque = realpath(dirname(__FILE__) . '/vendor/chrisboulton/php-resque/resque.php');
    require_once $resque;
    Exécuter

    QUEUE=counter php resque-worker.php

    resque-web

    Surveiller

    Démarrer le service

    gem install resque-web -v 0.0.8

    Surveiller la configuration du projet /etc/supervisor/conf.d/lumen_resque.conf

    resque-web -p 40000
    Avantages :

    supervisor

    Vous pouvez configurer le programme pour qu'il redémarre automatiquement après une sortie anormale

    Spécifiez le utilisateur pour exécuter le programme


    Vous pouvez définir le nombre de processus

    Redémarrage automatique

      Après le démarrage de superviseur, démarrez automatiquement le script
    • Gestion de groupe
    • Plus de détails sur PHP Pour les articles techniques, veuillez visiter la colonne
    • Tutoriel PHP
    • pour apprendre !

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    Déclaration:
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn