2015-05-12 41 views
6

Próbuję zadzwonić node file.js z Harmonogramu obciążenia Bluemix każdego ranka; file.js znajduje się w katalogu głównym mojego projektu node.js; file.js nie jest moim plikiem serwera. Ja używałem cron, ale wydaje się "BlueMix doesn't have a concept of cron jobs."Harmonogram obciążenia skryptem Node.js - czy jest równoważny z zadaniami cron w Bluemix?

w wyniku na (tylko) etap mojego procesu, mam „węzeł: command not found”

Chyba coś przeoczyłem. Czy można to zrobić nawet za pomocą Workload Scheduler, czy też powinienem znaleźć alternatywne opcje?

WIĘCEJ INFORMACJI

Próbuję zrobić:

var wls = new WorkloadService(credentials); 

var wp = new WAProcess("MyProcessName", "DescriptionProcess"); 
wp.addStep(new CommandStep("node file.js", myAgentName)); 
wp.addTrigger(TriggerFactory.repeatDaily(1)); 

wls.createAndEnableTask(wp, function(res){ 
    wls.runTask(res.id, function(){console.log("Process is created and started.")}); 
}); 

widzę w "IBM Workload Automation na chmura - Application Lab", że proces jest tworzony i zaczął. Kilka później, proces nie powiedzie się "nie znaleziono polecenia węzła"

Myślę, że czytam w dokumentacji, że agent może jedynie wywoływać lokalne polecenia systemowe (takie jak cat, pwd ...) lub polecenia, które wchodzą w interakcje z zewnętrznymi (w przypadku wywołań usług REST). Więc nie ma możliwości znalezienia polecenia node lub file.js.

Chyba że zainstaluję wszystko na agencie? Dokumentacja mówi, że możemy instalować programy w katalogu /home/wauser/workspace przy użyciu polecenia curl. Czy tak powinienem kontynuować?

+1

Czy mógłbyś wyjaśnić trochę więcej? –

+0

dodano więcej informacji – bluemixer

+0

po wykonaniu, czy nadal masz ten problem? –

Odpowiedz

0

Przypuszczam, że twoja aplikacja korzysta z wbudowanego buildpack node.js w Bluemix. Jeśli to prawda, węzeł powinien znajdować się na ścieżce. Ale nie jest dla mnie jasne, czy ta usługa programu planującego może poprawnie parsować komendę "node file.js". Może oczekuje tylko jednego polecenia bez parametrów? Czy mógłbyś spróbować umieścić plik skryptu, który uruchamia "plik node.js", na przykład run.sh, a następnie pozwolić CommandStep na wywołanie tego skryptu?

4

Powinieneś zmodyfikować swoją aplikację NodeJS, aby udostępnić metodę, która może być uruchomiona za pomocą polecenia curl i zapewnia poprawne wyniki i rejestrowanie. Zawinięcie wywołujące metodę zostanie następnie uruchomione w zadaniu harmonogramu obciążenia. Usługa Harmonogramu obciążenia nie jest częścią środowiska wykonawczego węzła.

0

Jak powiedziała Lmosca w swojej odpowiedzi, usługa Workload Scheduler działa poza Node.js, ale można jej użyć do uruchomienia kodu uruchomionego na Node.js i wyeksponowanego jako REST.

Oprócz używania zawijania można zdefiniować etap REST w procesie w programie Workload Scheduler, aby wywoływać interfejs REST API bez użycia curl.