0

システムに 10 個のワーカー スレッドが必要なユース ケースがあります。このうち、6 つのワーカー スレッドが 1 つのタスク リストにポーリングし、4 つのワーカー スレッドが別のタスク リストにポーリングする必要があります。

Flow Frameworkでこのようにコードを構成しました。

アクティビティの 1 つが別のタスク リストに登録されています。他のすべてのアクティビティをデフォルトのタスク リストに追加します。デフォルトのタスク リストをリッスンする 6 つのワーカー スレッドと、他のタスク リストをリッスンする残りの 4 つのワーカー スレッドがあります。

ただし、ワークフローを実行すると、次のエラーが表示されます。

タスク リスト名: CIMSProposalActivityValidationTList

ID : 29547@ccs-master-1001.vdc.xyz.com

詳細: ["java.lang.IllegalStateException",{"cause":null,"stackTrace":[{"methodName":"current","fileName":"AsyncContextBase.java","lineNumber":27,"className" :"com.amazonaws.services.simpleworkflow.flow.core.AsyncContextBase","nativeMethod":false},{"methodName":"","fileName":"AsyncContextBase.java","lineNumber":49,"className ":"com.amazonaws.services.simpleworkflow.flow.core.AsyncContextBase","nativeMethod":false},{"methodName":"","fileName":"TryCatchFinallyContext.java","lineNumber":46," className":"com.amazonaws.services.simpleworkflow.flow.core.TryCatchFinallyContext","nativeMethod":false},{"methodName":"","fileName":"TryCatchFinally.java","lineNumber":233,"className":"com.amazonaws.services.simpleworkflow.flow.core.TryCatchFinally","nativeMethod" :false},{"methodName":"","fileName":"TryCatch.java","lineNumber":22,"className":"com.amazonaws.services.simpleworkflow.flow.core.TryCatch","nativeMethod ":false},{"methodName":"","fileName":"GrooveScheduleAspect.java","lineNumber":93,"className":"com.amazon.transportation.groove.aspectj.GrooveScheduleAspect$1","nativeMethod ":false},{"methodName":"processGrooveSchedule","fileName":"GrooveScheduleAspect.java","lineNumber":93,"className":"com.amazon.transportation.groove.aspectj.GrooveScheduleAspect","nativeMethod":false},{"methodName":"validate","fileName":"ValidationActivitiesImpl.java", "lineNumber":23,"className":"com.amazon.cimsworkflow.activities.impl.ValidationActivitiesImpl","nativeMethod":false},{"methodName":"invoke0","fileName":"NativeMethodAccessorImpl.java", "lineNumber":-2,"className":"sun.reflect.NativeMethodAccessorImpl","nativeMethod":true},{"methodName":"invoke","fileName":"NativeMethodAccessorImpl.java","lineNumber":57 ,"className":"sun.reflect.NativeMethodAccessorImpl","nativeMethod":false},{"methodName":"invoke","fileName":"DelegatingMethodAccessorImpl.java","lineNumber":43,"className":"sun.reflect.DelegatingMethodAccessorImpl","nativeMethod":false} ,{"methodName":"invoke","fileName":"Method.java","lineNumber":606,"className":"java.lang.reflect.Method","nativeMethod":false},{"methodName ":"execute","fileName":"POJOActivityImplementation.java","lineNumber":63,"className":"com.amazonaws.services.simpleworkflow.flow.pojo.POJOActivityImplementation","nativeMethod":false},{ "methodName":"execute","fileName":"ActivityImplementationBase.java","lineNumber":46,"className":"com.amazonaws.services.simpleworkflow.flow.generic.ActivityImplementationBase","nativeMethod":false},{"methodName":"execute","fileName":" SynchronousActivityTaskPoller.java","lineNumber":196,"className":"com.amazonaws.services.simpleworkflow.flow.worker.SynchronousActivityTaskPoller","nativeMethod":false},{"methodName":"run","fileName" :"ActivityTaskPoller.java","lineNumber":97,"className":"com.amazonaws.services.simpleworkflow.flow.worker.ActivityTaskPoller$1","nativeMethod":false},{"methodName":"runWorker", "fileName":"ThreadPoolExecutor.java","lineNumber":1145,"className":"java.util.concurrent.ThreadPoolExecutor","nativeMethod":false},{"methodName":"run","fileName":"ThreadPoolExecutor.java","lineNumber":615,"className": "java.util.concurrent.ThreadPoolExecutor$Worker","nativeMethod":false},{"methodName":"run","fileName":"Thread.java","lineNumber":744,"className":"java .lang.Thread","nativeMethod":false}],"message":"AsyncScope.doAsync() メソッド外で非同期コードを実行しようとしています","localizedMessage":"AsyncScope.doAsync() 外で非同期コードを実行しようとしています) method","suppressed":["[Ljava.lang.Throwable;",[]]}]"java.util.concurrent.ThreadPoolExecutor","nativeMethod":false},{"methodName":"run","fileName":"ThreadPoolExecutor.java","lineNumber":615,"className":"java.util .concurrent.ThreadPoolExecutor$Worker","nativeMethod":false},{"methodName":"run","fileName":"Thread.java","lineNumber":744,"className":"java.lang.Thread ","nativeMethod":false}],"メッセージ":"AsyncScope.doAsync() メソッドの外部で非同期コードを実行しようとしています","localizedMessage":"AsyncScope.doAsync() メソッドの外部で非同期コードを実行しようとしています", "抑制":["[Ljava.lang.Throwable;",[]]}]"java.util.concurrent.ThreadPoolExecutor","nativeMethod":false},{"methodName":"run","fileName":"ThreadPoolExecutor.java","lineNumber":615,"className":"java.util .concurrent.ThreadPoolExecutor$Worker","nativeMethod":false},{"methodName":"run","fileName":"Thread.java","lineNumber":744,"className":"java.lang.Thread ","nativeMethod":false}],"メッセージ":"AsyncScope.doAsync() メソッドの外部で非同期コードを実行しようとしています","localizedMessage":"AsyncScope.doAsync() メソッドの外部で非同期コードを実行しようとしています", "抑制":["[Ljava.lang.Throwable;",[]]}],"nativeMethod":false},{"methodName":"run","fileName":"ThreadPoolExecutor.java","lineNumber":615,"className":"java.util.concurrent.ThreadPoolExecutor$Worker"," nativeMethod":false},{"methodName":"run","fileName":"Thread.java","lineNumber":744,"className":"java.lang.Thread","nativeMethod":false}] ,"message":"AsyncScope.doAsync() メソッド外で非同期コードを実行しようとしています","localizedMessage":"AsyncScope.doAsync() メソッド外で非同期コードを実行しようとしています","suppressed":["[Ljava. lang.Throwable;",[]]}],"nativeMethod":false},{"methodName":"run","fileName":"ThreadPoolExecutor.java","lineNumber":615,"className":"java.util.concurrent.ThreadPoolExecutor$Worker"," nativeMethod":false},{"methodName":"run","fileName":"Thread.java","lineNumber":744,"className":"java.lang.Thread","nativeMethod":false}] ,"message":"AsyncScope.doAsync() メソッド外で非同期コードを実行しようとしています","localizedMessage":"AsyncScope.doAsync() メソッド外で非同期コードを実行しようとしています","suppressed":["[Ljava. lang.Throwable;",[]]}]"ThreadPoolExecutor.java","lineNumber":615,"className":"java.util.concurrent.ThreadPoolExecutor$Worker","nativeMethod":false},{"methodName":"run","fileName":"スレッド.java","lineNumber":744,"className":"java.lang.Thread","nativeMethod":false}],"message":"AsyncScope.doAsync() メソッドの外で非同期コードを実行しようとしています", "localizedMessage":"AsyncScope.doAsync() メソッドの外で非同期コードを実行しようとしています","suppressed":["[Ljava.lang.Throwable;",[]]}]"ThreadPoolExecutor.java","lineNumber":615,"className":"java.util.concurrent.ThreadPoolExecutor$Worker","nativeMethod":false},{"methodName":"run","fileName":"スレッド.java","lineNumber":744,"className":"java.lang.Thread","nativeMethod":false}],"message":"AsyncScope.doAsync() メソッドの外で非同期コードを実行しようとしています", "localizedMessage":"AsyncScope.doAsync() メソッドの外で非同期コードを実行しようとしています","suppressed":["[Ljava.lang.Throwable;",[]]}]methodName":"run","fileName":"Thread.java","lineNumber":744,"className":"java.lang.Thread","nativeMethod":false}],"message":"試行AsyncScope.doAsync() メソッドの外で非同期コードを実行する","localizedMessage":"AsyncScope.doAsync() メソッドの外で非同期コードを実行しようとしています","suppressed":["[Ljava.lang.Throwable;",[] ]}]methodName":"run","fileName":"Thread.java","lineNumber":744,"className":"java.lang.Thread","nativeMethod":false}],"message":"試行AsyncScope.doAsync() メソッドの外で非同期コードを実行する","localizedMessage":"AsyncScope.doAsync() メソッドの外で非同期コードを実行しようとしています","suppressed":["[Ljava.lang.Throwable;",[] ]}]AsyncScope.doAsync() メソッドの外で非同期コードを実行しようとしています","suppressed":["[Ljava.lang.Throwable;",[]]}]AsyncScope.doAsync() メソッドの外で非同期コードを実行しようとしています","suppressed":["[Ljava.lang.Throwable;",[]]}]

理由:

  • AsyncScope.doAsync() メソッドの外部で非同期コードを実行しようとしています

私のタスクリストは、私が作成した新しいものです。スレも予想通り。しかし、私はこのエラーが発生しています。これを解決する方法についてのリード。返信してください

4

2 に答える 2

1

AWS Flow Framework アクティビティの実装には、非同期コードを含めることはできません。このようなコードはすべて、ワークフローの実装でのみ許可されます。スタック トレースから、アクティビティの実装は、非同期エラー処理にのみ使用できるTryCatchクラスを参照しているように見えます。

于 2014-09-04T16:39:52.480 に答える