Développer avec RBS Change : Tâche planifiée : paramètres ?

  • 46462.1

    10/11/2011 15:54


    David Guillot
    Rang : Expert
    Bonjour,

    Je souhaite créer une tâche planifiée appelant en HTTP une action que j'ai créée, en lui passant des paramètres que je souhaite définir dans un import-data. Je ne trouve aucune documentation à ce sujet, et aucun exemple dans les modules existants (le champ parameters est vide pour toutes les tâches existantes). Comment faire ?

    Merci d'avance
  • 46462.2

    10/11/2011 16:25


    Gaël Port
    Titre : Développeur RBS Change
    Rang : Expert
    Le champ parameters d'une tâche est un champ sérialisé donc pas évident à renseigner depuis un script xml.

    Jusqu'à présent on n'a jamais eu à le faire. Les seuls cas qui utilisent ce champ ce sont des tâches créées à la volée dans le code (par exemple dans la classe users_FrontendgroupFeederBaseService).

    Le reste du temps on développe des tâches assez générales et ce sont les documents à traiter qu'on "flag" d'une manière ou d'une autre pour indiquer qu'il faut les traiter et éventuellement comment.

    Quel genre de paramétrage voulez-vous transmettre ?



    D'autre part en général pour une tâche planifiée on ne passe pas par des actions en tant que tel mais plutôt par des scripts dédiés. Par exemple, la compilation des produits en tâche de fond est codée dans la classe catalog_BackgroundCompileTask qui se charge d'appeler itérativement le script modules/catalog/lib/bin/batchCompile.php sur des sous-parties de l'ensemble des produits à compiler.

    L'ensemble n'est pas fait en une passe pour pouvoir tenir un un grand nombre d'éléments sans atteindre la limite de temps d'exécution ou la limite de mémoire. De plus entre chaque itération on appelle la méthode ping() qui permet de savoir que la tâche est encore en train de tourner.
  • 46462.3

    10/11/2011 16:36


    David Guillot
    Rang : Expert
    Il s'agit ici d'un script de parsing d'un flux RSS externe pour en intégrer les éléments en tant que event/news. J'ai donc créé une action qui prend 2 paramètres : l'id d'un rss/feed (dont l'URL est récupérée puis appelée) et l'id d'un event/treefolder (dans lequel enregistrer les news). Je souhaite donc créer des tâches planifiées qui appellent cette action avec, pour chaque tâche, un rss/feed et un event/treefolder spécifiques.

    Pour ce qui est d'utiliser un script dédié au lieu de l'action, pourquoi pas, c'est sûrement plus propre. Mais le problème concernant le passage de paramètre en import-data reste entier...
  • 46462.4

    10/11/2011 17:41


    Gaël Port
    Titre : Développeur RBS Change
    Rang : Expert
    Donc pour résumer ce que j'ai pu dire en privé (parce que ça peut intéresser d'autres personnes) :

    L'approche à privilégier est plutôt de faire un document spécifique qui contient la référence au flux, la fréquence d'import, l'endroit où importer les éléments et autres configurations. Ainsi on aura simplement une tache générale qui ira interroger ces documents pour réaliser l'import.

    Ceci a plusieurs avantages, notamment d'avoir un cadre clair sur les paramètres à donner et une édition simple en backoffice au besoin (ce qu'on n'aurait pas avec un ensemble de tâches paramétrées).
 
Merci de prendre connaissance et de respecter les règles des forums.
 
1467 membres
Aucun membre connecté