1

定期的にRESTリクエストを行い、データをPostgreSQLデータベースに保存する以下のフローがあります。

<jdbc:postgresql-data-source name="PostgreSQL_Data_Source" user="postgres" password="*******" url="jdbc:postgresql://localhost:5432/TestDB" transactionIsolation="UNSPECIFIED" doc:name="PostgreSQL Data Source"/>
<jdbc:connector name="PostgreSQL_JDBC_Connector" dataSource-ref="PostgreSQL_Data_Source" validateConnections="true" queryTimeout="-1" pollingFrequency="0" doc:name="Database">
    <jdbc:query key="InsertRecord" value="INSERT INTO "tblJSON"("StoreHere") VALUES (CAST(#[message.payload] AS json))"/>
</jdbc:connector>

<flow name="RESTServiceScheduling" doc:name="RESTServiceScheduling">

     <!-- Step 1: Generates events at a given interval of time -->
     <quartz:inbound-endpoint jobName="RESTServiceJobSchedule" repeatInterval="0" doc:name="Quartz" responseTimeout="10000" cronExpression="0 0 10 ? * *">
          <quartz:event-generator-job/>
     </quartz:inbound-endpoint>


    <!-- Step 2: This will read the REST service data -->
    <http:rest-service-component httpMethod="GET" serviceUrl="http://localhost:12186/RestServiceImpl.svc/StorageUsage" />

    <!-- Step 3: Transform the HTTP-streamed payload into a java.lang.String  -->   
    <object-to-string-transformer doc:name="Object to String"/>

    <!-- Step 4: Dump into the destination Database --> 
    <jdbc:outbound-endpoint exchange-pattern="one-way" queryKey="InsertRecord" queryTimeout="-1" connector-ref="PostgreSQL_JDBC_Connector" doc:name="Destination"/>

</flow>

これは正常に機能しますが、CLI(コマンドラインインターフェイス)からジョブをトリガーする方法が必要です。

どうすればいいですか?

前もって感謝します

4

2 に答える 2

2

HTTPインバウンドエンドポイントを使用してフローをトリガーしcurl、コマンドラインから呼び出します。

于 2013-01-23T16:27:49.700 に答える
1

私はこれが受け入れられた答えを持つ古い質問であることを知っていますが、別の方法はファイルを削除するファイルエンドポイントを使用することです。ファイル(またはそのエンドポイント)のファイル経過時間が1で、ポーリング頻度が10秒になるように設定します。フローをトリガーするには、正しい名前のファイルを作成します。ただし、これを行うと、フローが完了するまでMuleはファイルを削除しないことがわかりました。フローがポーリング期間より長くかかった場合、同じファイルを複数回取得します。これを回避するために、ファイルインバウンドエンドポイント、ロガー、および特定のパスを持つVMアウトバウンドエンドポイントのみを持つ1つのフローがあります。上記のHTTPインバウンドエンドポイントを使用するのと同じパスでVMインバウンドエンドポイントを使用します。

編集touchCLIでまたは同様のものを使用してファイルを作成できます。私はこの質問が上記の方法に代わるものを探しているのを見つけました。

于 2014-10-31T17:44:32.900 に答える