Usiamo operatori di ingranaggi PHP per eseguire diverse attività in parallelo. Tutto funziona bene, e ho uno stupido script di shell per farli girare quando li voglio. Essendo un programmatore (e quindi pigro), volevo vedere se riuscivo a capovolgerli tramite una sceneggiatura.Avvio automatico di istanze multiple upstart
ho capito come utilizzare la strofa esempio, così ho potuto iniziare con un numero di istanza:
description "Async insert workers"
author "Mike Grunder"
env SCRIPT_PATH="/path/to/my/script"
instance $N
script
php $SCRIPT_PATH/worker.php
end script
E questo funziona alla grande, per avviarli in questo modo:
sudo start async-worker N=1
sudo start async-worker N=2
Il il modo in cui voglio utilizzare questi lavoratori è di farne girare un numero (forse uno per core, ecc.) e vorrei farlo all'avvio. Per essere chiari, non ho bisogno dello script upstart per rilevare il numero di core. Sono felice di dire "fai 8 istanze", ma è per questo che voglio eseguire più attività. C'è un modo per me di usare la clausola "start on" in uno script upstart per farlo automaticamente?
Ad esempio, avviare esempio 1, 2, 3, 4? Quindi farli uscire allo spegnimento correttamente?
Suppongo che potrei collegarlo a uno script init.d, ma mi chiedevo se l'upstart può gestire qualcosa di simile, o se qualcuno ha capito questo problema.
Ciao ragazzi!
Grazie mille! Ho provato a risolverlo in un modo simile, ma mi mancava il bit 'task', quindi la prima iterazione del ciclo sarebbe solo bloccata. Eccezionale. :) – mkgrunder
Dovresti anche controllare http://stackoverflow.com/questions/12084025/restarting-upstart-instance-prcesses che consente non solo di avviare più istanze, ma anche di fermarle. – Evgeny
Ho letto la documentazione ma ancora non la capisco, perché il blocco del ciclo nella prima iterazione a meno che non sia un compito?/cc @mkgrunder – Mahn