問題タブ [long-running-processes]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
6 に答える
1013 参照

asp.net - 実行時間の長い操作が終了するまで ASP.NET ページを保持する最善の方法は何ですか?

ジャバスクリプト?

メタタグの更新?

Response.Redirect (自分自身へ)

Server.Transfer (自分へ)

Ajax 更新パネル?

0 投票する
4 に答える
20412 参照

bash - プロセスを生成し、SIGTERM で子を終了するシェル スクリプト

バックグラウンドでいくつかの実行時間の長いプロセスを生成し、その後ハングアップするシェル スクリプトを作成したいと考えています。SIGTERM を受信したら、すべてのサブプロセスも終了させたいと思います。

基本的には「マスタープロセス」が欲しい。

これが私がこれまでに得たものです:

上記のスクリプトは で失敗しtrap: 10: SIGTERM: bad trapます。

編集:Ubuntu 9.04を使用しています

0 投票する
5 に答える
3362 参照

python - Pythonの長時間実行デーモンジョブプロセッサ

2つの目的を果たす長時間実行プロセス(Linuxデーモン)を作成したいと思います。

  • RESTWebリクエストに応答します
  • スケジュール可能なジョブを実行します

もともとは、実行を実行して更新を実行し、その後cronした単純なプログラムとして機能していましたが、REST要件が追加され、一部のジョブの頻度を変更したいのですが、他のジョブは変更しません(すべてのジョブの頻度が異なるとしましょう)。

長時間実行されるプロセス、特にリクエストに応答するのではなく、独自に処理を実行するプロセスを作成した経験はありません。

私の基本的な計画は、REST部分を別のスレッド/プロセスで実行することであり、ジョブ部分を別々に実行することを考えました。

パターン、特にpythonが存在するかどうか(私がやりたいことの例を探しましたが、実際には見つかりませんでした)、またはこれらを満たすためにプロジェクトを移行することから始める場所について誰かが提案を持っているかどうか疑問に思っています新しい要件。スケジューリングに触れるプロジェクトをいくつか見ましたが、実際のユーザーエクスペリエンス/提案をここで探しています。何がうまくいく/うまくいかないのですか?

0 投票する
2 に答える
545 参照

c# - Windows サービスでの長時間実行プロセスのシャットダウン

実行時間の長いプロセスを実行する Windows サービスがあります。タイマーによってトリガーされ、プロセス全体が完了するまでに数分かかる場合があります。タイマーが経過すると、サービスはさまざまなタスクを実行する管理オブジェクトをインスタンス化し、結果をログに記録してから終了します。

プロセスの途中でサーバーがシャットダウンした場合に対処するための実装は何も実装していません。いくつかの問題を引き起こす可能性があります。これを処理するためのベストプラクティスは何ですか?

0 投票する
2 に答える
2642 参照

windows - Windowsで任意のサブプロセスを実行し、それでも正常に終了しますか?

構成ファイルでユーザーが指定した他の任意のプロセスを呼び出せるようにしたいアプリケーションAがあります。

バッチスクリプトBは、ユーザーがAによって呼び出されることを望むそのようなプロセスの1つです。Bは、いくつかの環境変数を設定し、いくつかのメッセージを表示し、コンパイラCを呼び出していくつかの作業を行います。

Windowsは、任意のプロセスを正常に終了するための標準的な方法を提供しますか?Aがコンソールで実行され、CTRL+Cを受け取ったとします。これをBとCに渡すことはできますか?Aがウィンドウ内で実行され、ユーザーがウィンドウを閉じようとした場合、BとCをキャンセルできますか?

TerminateProcessはオプションですが、あまり良いものではありません。AがBでTerminateProcessを使用する場合、Cは実行を継続します。これは、Cが長時間実行されている場合に厄介な問題を引き起こす可能性があります。これは、Cの最初のインスタンスがまだ密かに機能している間に、同じファイルを操作するためにCの別のインスタンスを開始する可能性があるためです。さらに、TerminateProcessはクリーンな終了にはなりません。

GenerateConsoleCtrlEventは良さそうに聞こえ、すべてがコンソールで実行されているときに機能する可能性がありますが、ドキュメントにはCTRL + Cを自分のコンソールにのみ送信できると記載されているため、Aがウィンドウで実行されている場合は役に立ちません。

WindowsでSIGINTに相当するものはありますか?このような記事を見つけたいと思います:http://www.cons.org/cracauer/sigint.htmlforWindows

0 投票する
4 に答える
7619 参照

python - Djangoビューから長時間実行されるプロセスを開始するには?

Django ビューから完了するまでに数時間かかるプロセスを実行する必要があります。状態を知ったり、状態と通信したりする必要はありませんが、プロセスを開始した直後にそのビューをリダイレクトする必要があります。

を使用してみましsubprocess.Popenたが、 new 内で使用してthreading.Threadmultiprocessing.Process. ただし、親プロセスは、子が終了するまでハングし続けます。それをほぼ完成させる唯一の方法は、フォークを使用することです。親プロセスが終了するまでゾンビ プロセスを残すため、これは明らかに良くありません。

それが、フォークを使用するときに私がやろうとしていることです:

では、死傷者を最小限に抑えて Django ビューから完全に独立したプロセスを実行する方法はありますか? それとも私は何か間違ったことをしていますか?

0 投票する
3 に答える
543 参照

weblogic - 作業マネージャーのスレッドの制約とページを表示できません

特定の機能のためにメモリを大量に消費する処理があり、この処理への並列リクエストの数を制限したいと思います。WebLogicの「ワークマネージャ」を使用し、そのサーブレットのスレッド数に制限を設けることで設定できます。

たとえば、最大スレッド制限を3とすると、並列リクエストが10個ある場合。7つのリクエストがキューにあります。キューで待機しているこれらの要求の処理に最大30〜40分かかる場合があります。簡単なテストを行いましたが、15分後にタイムアウトが発生し、1時間後にメッセージを受信したため、受信したページを表示できません。

WebLogicにタイムアウトを増減し、ページを表示できないようにする設定があるかどうかを知っている人はいますか?

誰かがこれについて何か考えを持っているかどうかを感謝します。

0 投票する
2 に答える
763 参照

c# - ASP.NETバックグラウンド処理は、ステータスまたはUIフィードバックをブロックします

この質問が何度も聞かれたことは知っていますが、私の問題は少し異なります。

ユーザーがExcelファイルをダウンロードしてアップロードできるページがあります。Excelのダウンロード中、ファイルの生成には約2分かかります。データベースを更新するチェックポイントを追加しました(処理の開始、ヘッダーの処理など)。アップロードについても同じことをしました。

また、一定の間隔でデータベースをチェックし、ステータスをユーザーに出力して(処理の開始、ヘッダーの処理など)などのフィードバックを提供するajaxリクエストもあります。

問題は、プロセスが完了したときにのみフィードバックを受け取ることです。バックグラウンドプロセス中にセッションがブロックされ、他のリクエスト(ajax)はバックグラウンドプロセスが終了した後にのみ完了するようです。ajaxは4秒間隔で約10件のリクエストを行います。最後に10件の応答が返されます。

2つのiframeとフレームを試しました。1つはajaxを実行し、もう1つはプロセスを実行しています。動作しません。私は別のブラウザ(IEで実行されているプロセス、FFで実行されているajax)を試しましたが、それは機能します(コードが機能するようになりました)。誰かアドバイスできますか?ありがとう

ps私の環境はIIS6、MVC1.0ブラウザーを備えたASP.NET3.5はIE6.0です

0 投票する
2 に答える
2091 参照

java - 長期実行のWebサービスアーキテクチャ

Webサービスを構築するためにaxis2を使用し、すべてのアプリケーションのロジックを実行するためにJbossサーバーを使用します。応答に最大1時間かかる可能性のあるBeanと通信するWebサービスを構築するように依頼されたため(リクエストのサイズによって異なります)、その間、消費者との接続を維持することはできませんでした。

非同期Webサービスを使用することもできますが、それはあまりうまくいきませんでした。そのため、Webサービスの背後にあるロジックを実行するBeanを実装し、サービスにそのBeanを非同期で呼び出させることができると判断しました。Webサービスは、コンシューマーに渡すトークンを生成し、コンシューマーはそれを使用してリクエストのステータスを照会できます。

私が持っている質問は次のとおりです。

  1. Beanを作成したサービスのメソッドから戻った後、JBossサーバーでBeanのステータスを照会する方法。ステートフルBeanを使用する必要がありますか?
  2. Webサービス側から非同期呼び出しを実行したい場合、ステートフルBeanを使用できますか?
0 投票する
5 に答える
1591 参照

.net - .NET フラストレーション - Process.GetProcessById が新しい参照を返す

多くの子プロセスを起動する ac# プログラムを書いています。しばらくして、これらのプロセスを ID で取得し、それらのプロセスを、最初に作成されたときに Dictionary に追加された Dictionary に格納されている一連のプロセスと照合する必要があります。しかし、私は純粋にばかげているように見える問題に遭遇しています...

GetProcessById が 'new Process(...)' を返すことを確認するために .NET Reflector を使用しましたが、既に実行中のプロセスへの参照を見つけて代わりに返す必要があるようです。

最初の Debug ステートメントは基本的に次のような呼び出しであると想定できます

MyCustomDataType data = myDictionary[メモ帳];

最初に挿入したデータを取得することを期待しますが、代わりに KeyNotFoundException を取得するのは、おそらくデフォルトの比較子が参照チェックを行っているためです。これに対抗するために、辞書にカスタムの IComparer を追加しました。このカスタム IComparer は、2 つの Process オブジェクトが同じ ID を持っていることを確認するだけなので、期待どおりに関連付けられたデータを取得できます。ただし、これには、実行されていないプロセスにはプロセス ID がないという独自の問題があるため、カスタム IComparer で Process.ID を呼び出すと、InvalidOperationException がスローされることがあります!!! だから、私は別の問題を作成するためだけに 1 つの問題を修正しました。

だから、私は2つの質問があると思います:

  • .NET が既に実行中の Process インスタンスへの参照を返さないのはなぜですか?
  • プロセス ID の使用が Process オブジェクトの存続期間中常に有効であるとは限らないため、ディクショナリに格納されているプロセスを一致させるにはどうすればよいですか?