私はActionHeroが新しく、キューに何かを追加し、それが完了するまで待ってからデータを取得してから、別のキュー項目を先に進める必要がありますクライアントに応答します。次のようになります。クライアントが当たるActionHero.jsでプログラムでアクションを呼び出す方法
- API/fooが FOOアクションバーのアクションを呼び出し、待機
- ...
- はバーが終了すると、それはそれから渡された
123abc
123abc
の値を返します。それを必要とするタスクのキューにもう一度書き込んでください。
ここでは、最適ではないことを理解していますが、これには3台のサーバーが必要です。/fooが私のNode ActionHeroサーバにヒットすると、123abc
はJavaサーバ(認証サービスと考える)から来て、次にNode ActionHeroサーバがこれを送信して.NETサーバによって取得されます。 ACTIONで
私はタスクがヒットしないと、それはセットアップが現在のJavaサーバーとJavaサーバは、それが空のオブジェクト
実行(だ下回っ私はコードでが、を必要とする値をログアウト持っている方法) :
api.actions.enqueue('MyJavaServerTask', {...}, function(error, toRun){
console.log(arguments) // <-- returns { '0': null, '1': true }
data.response.success = true
api.queue.push(data, next)
})
はTASK:Javaサーバ上で
exports.task = {
name: 'MyJavaServerTask',
description: 'My Java Server Task',
frequency: 0,
queue: 'default',
run: function (api, params, next) {
var job = {
response: {},
connection: {id: 'none'},
authorization: params.authorization,
params: {
apiVersion: '1',
action: 'MyJavaServerTask',
...
}
}
api.queue.push(job, function() {
console.log(arguments) // <-- returns {}
next()
})
}
}
しかし、再び、私はやるリクエストを見ると成功し、正しいJSONが返されます。そのため、ログは
15:19:22.542 [run-main-0] INFO application - apiq read: {"id":"none","params":{"apiVersion":"1","action":"MyJavaServerTask"}}
generating tables and key
15:19:22.543 [run-main-0] INFO application - result: {"key":"..."}
だから... ...どのように私は戻ってそこからkey
は、次のqueue'd項目に追加するために使用することですかのように見えますか?
バックエンドサーバーをどのように呼び出すのか、何が起きるかについては明確ではありません。 'api.queue'はActionHeroのコアミドルウェアではありませんので、明らかにあなたが提供しているものです。 'api.actions.enqueue'も標準のAHメタファーではありません - あなたは' api.tasks'を意味しましたか?あなたのACTUALコードのGist/Plunkr/etcを提供できない限り、私たちがあなたを助けることは非常に困難です。 –
したがって、 '/ foo'は通常、何らかの' bar() 'および' baz() '機能を順番に実行しなければならないHTTP(S)要求によって通常トリガされるAHアクションにあります。しかし、 'bar()'はまさに、どのように応答特性を操作するエンドポイントですか?そして、同様に、 'baz()'(.NETのステップ)も何ですか? – alphadogg