問題タブ [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.
c# - 背景奇妙に振る舞う労働者
サービスを呼び出すいくつかのコードに取り組んでいます。このサービス コールは失敗する可能性があります。失敗した場合は、システムが機能するか時間が経過するまで再試行する必要があります。
次のコードが正しく機能していないように見えるため、どこが間違っているのか疑問に思っています...ランダムに1〜4回のループしか行いません...
乾杯アンソニー
アップデート:
代わりに ThreadPool.QueueUserWorkItem を使用するようにコードを切り替えました...これを行ってから、問題はなくなり、意味的には同じことができます。助けてくれてありがとう。
asp.net - Web(asp.net)環境での長時間実行操作(スレッド)
asp.net(mvc)Webサイトがあります。関数の一部として、たとえば次のような長時間実行される操作をサポートする必要があります。
ユーザーから開始:ユーザーは(xml)ファイルをサーバーにアップロードできます。サーバー上でファイルを抽出したり、操作(データベースに挿入)などを行う必要があります...これには1分から10分かかる場合があります(またはそれ以上-ファイルサイズによって異なります)。もちろん、インポートの実行中にリクエストをブロックしたくはありませんが、ユーザーを進行状況ページにリダイレクトして、ステータスやエラーを確認したり、インポートをキャンセルしたりすることができます。
この操作は頻繁には使用されませんが、2人のユーザーが同時にデータをインポートしようとする場合があります。インポートを並行して実行すると便利です。最初は、iis(コントローラーアクション)で新しいスレッドを作成し、新しいスレッドでインポートを実行することを考えていました。しかし、これが良いアイデアかどうかはわかりません(Webサーバー上に作業スレッドを作成するため)。Windowsサービスまたは他のアプローチを使用する必要がありますか?
システムから開始:-新しいデータでluceneインデックスを定期的に更新する必要があります。-(将来的には)大量のメールを送信する必要があります。
これをサイトのジョブとして実装し、Quartz.netを介してジョブを実行する必要がありますか、それともWindowsサービスなども作成する必要がありますか?
サイトの「ジョブ」を実行する場合のベストプラクティスは何ですか?
ありがとう!
python - Python-Webアプリから長時間実行プロセスを起動する
長時間実行されるプロセスを起動する必要があるPythonWebアプリケーションがあります。問題は、プロセスが終了するのを待ちたくないということです。起動して終了するだけです。
私はWindowsXPで実行しており、WebアプリはIISで実行されています(それが重要な場合)。
これまで私はpopenを試しましたが、うまくいかなかったようです。子プロセスが終了するまで待機しました。
asp.net - 非同期ページを使用したAsp.netの長時間実行プロセス
すべてのデータを取得するのに約2〜3分かかるレポートがあります
そのため、タイムアウトを防ぐためにASP.net非同期ページを使用しようとしています。しかし、それを機能させることはできません
これが私がしていることです:
したがって、長時間実行メソッド(GetReportData)を表すデリゲートがあります。
そして、私はこの記事のようにそれを呼ぼうとしています:
http://msdn.microsoft.com/en-us/magazine/cc163725.aspx
長時間実行されるメソッドはデバッガーで完了しますが、EndAsynchOperationメソッドとPage_PreRenderCompleteメソッドのブレークポイントがヒットすることはありません
私が間違っていることについて何か考えはありますか?
powershell-2.0 - 長時間実行されているPowershellスクリプトがフリーズする
長時間実行されるPowerShellスクリプトを使用して、非常に長い時間がかかる可能性のある多くの小さな操作を実行しています。約30分後、スクリプトがフリーズしました。を押すCtrl-C
と、プロセスを強制終了する代わりにスクリプトの実行を再開することで、スクリプトの実行を再開することができました。
PowerShell内で長時間実行されるスクリプトを防ぐ何らかのスクリプトタイムアウトまたはメカニズムはありますか?
c# - 長時間実行時間ベースのプロセスのプログラミング
アプリケーションを作成する最良の方法は何だろうと考えていました。基本的に、マルチスレッドでさまざまなゲーム シミュレーションを同時に実行できるスポーツ シミュレーション プロジェクトがあります。
DateTime が添付された SQLite データベースに一致を保存します。
新しい試合をプレイする必要があるかどうかを 1 時間ごとに確認し、それらのスレッドを生成するアプリケーションを作成したいと考えています。
そのプロセスのさまざまなインスタンスが共有するオブジェクト(特にトーナメントオブジェクト)があり、DBに保存されたときに新しいプロセスによって上書きされると思われるため、タスクスケジューラがこれを毎時間実行することに依存することはできません. したがって、理想的には、何時間にもわたってスリープするある種の長時間実行プロセスを作成する必要があります。
各オブジェクトがメモリから 1 回だけ読み込まれるようにオブジェクト モデルを作成したので、すべてのシミュレーション スレッドがこの 1 つのアプリケーションから生成される限り、データを上書きすることはありません。
編集:要件の詳細
基本的に、複数のマッチを同時に実行できる必要があります。これらのマッチは任意の長さにすることができるため、一方が他方の開始前に終了する必要はありません (実際、ほとんどの場合、同時に複数のマッチが実行されます)。
私が思い描いているのは、バックグラウンドで実行されるプログラム (サービスだと思いますか?) で、60 分間スリープし、データベースをチェックして、ゲームを開始する必要があるかどうかを確認します。開始するゲームがある場合は、スレッドを起動してそれらのゲームをシミュレートし、スリープ状態に戻ります。したがって、シミュレーション スレッドは実行されていますが、「スケジューリング」スレッドはさらに 60 分間スリープ状態になります。
私がデフォルトの OS タスク スケジューリング インターフェイスを使用できない (と思う) 理由は、これらのインターフェイスでは、実行するタスクを新しいプロセスとして破棄する必要があるためです。私は、最初のロード時に各オブジェクト クラスによってキャッシュされる (メモリ参照) ようにデータベース オブジェクト モデルを開発しました。つまり、各オブジェクトはメモリから 1 回だけロードされ、その参照はすべての保存で使用されます。つまり、各シミュレーション スレッドが完了してその状態を保存すると、同じ参照が (更新された状態で) 状態を保存するために使用されます。毎回異なる実行可能ファイルが起動されると、おそらく各プロセスによって異なるメモリ参照が開かれるため、1 つのプロセスが DB に保存され、他のプロセスによって書き込まれた状態が上書きされる可能性があります。
サービスは道のりのように見えます。サービスを 60 分間スリープさせ、その後ウェイクアップして関数を実行する方法はありますか? これを標準のコンソール アプリケーションにするのはメモリを浪費する気がしますが、私が認識していない効率的な方法があるかどうかはわかりません。
extjs - ExtJS でアイコンのレンダリングを待っている長いプロセス ブロック
私が実装している機能は実際には必須ではないため、そのためだけにスレッドの追加ライブラリを含めることはしません。しかし、誰かが回避策を知っていれば、私はそれを感謝します。
したがって、256 行と 3 列のグリッドがあります。それらの列の 1 つは、checkboxColumn (ここで使用されているものと同様) です。ただし、そのcheckboxColumnプラグインは、ヘッダーにチェックボックスを表示するように変更されておりCheck-All
、Check-None
機能の種類を許可しています。
行数が非常に多いため、すべてのチェック プロセスに時間がかかります。そこで「糸車」を入れることにしました(GIFアニメ待ち)。そして問題は、アニメーションが機能しないことです。そのdefer
ため、アニメーション化されたアイコンのレンダリングを許可する呼び出しを行いdefer
ましたが、アニメーションを実行するにはそれだけでは不十分なようです。これdefer
により、少なくとも待機中のgifの最初のフレームを表示できますが、すべてが完了したときにチェックされていない状態が表示されるまで約1分間チェックされた状態を表示する代わりに。
高価な方法は次のとおりです。
また、次のコード スニペットで実際の例を確認できます。
列のチェックボックス (ヘッダーにあるもの) をクリックして、予想どおりに回転していない gif を確認します。
注: 他の場所にもページング機能がありますが、256 行は常に同じであるため、ここでは使用しません。したがって、これをページングするよりも、すべてチェックボタンを失います。
excel - PCクロールを行わずにVBAで長時間実行されるプロセスを実行するにはどうすればよいですか?
COM オブジェクトのインスタンスを作成し、オブジェクトのDataReadyプロパティを継続的にポーリングして、新しいデータがあるかどうかを確認する VBA アプリケーションがあります。新しいデータが利用可能になると、データがスプレッドシートに貼り付けられます。問題は、このマクロ (vba サブルーチン) が継続的に実行され、これにより Excel の速度が低下し、プロセスの実行中にコンピューターが使用できなくなることです。このプロセスを別のスレッドで開始したり、.NET バックグラウンド ワーカーのようなことをしたりする方法はありますか?
私の2つの試みは、このようなwhileループを使用することでした..
そして、これ
2 番目の試みは間違いなくうまく機能しますが、それでもかなり遅くなります。より良い解決策はありますか?
私の COM オブジェクトは、C# で作成したクラス ライブラリです。データの準備ができたときにクラス ライブラリで発生するイベントを追加できますが、VBA プログラムでこれらのイベントをリッスンするにはどうすればよいですか?
asp.net - ASP.NETで長時間実行されるプロセスを処理する一般的な方法
呼び出されて実行されるasp.netページである長期実行データ転送プロセスがあります。完了するまでに最大で数時間かかる場合があります。それは大丈夫なようですが、私はこのような長いプロセスを処理するためのより一般的な方法のいくつかは何であるか疑問に思っていました。アプリケーションを作成して、Windowsスケジューラ、またはWebサービスやカスタムハンドラーを介して実行しますか?
python - Django、Pythonが応答を待たずにPythonコードを呼び出していますか?
私は Django を使用しており、Web ユーザー インターフェイスを介してやり取りしている長時間実行されるプロセスをいくつか作成しています。たとえば、それらは常に実行され、数分ごとにデータベースの値をチェックし、これが変更された場合にのみ停止します (ブール値 true false になります)。したがって、Django を使用してこれらと対話できるようにしたいのですが、これを行う方法がわかりません。PHPを使用していたとき、これを行う方法がいくつかありました.Pythonで行う方がさらに簡単だと思いますが、検索でこれについて何も見つけることができません.
基本的に、私ができるようにしたいのは、Pythonコードが終了するのを待たずに実行することだけなので、実行を開始してから、djangoに必要な他のことを実行し、新しいページをすばやくユーザーに返します。
外部プログラムを呼び出す方法があることは知っているので、それが唯一の方法だと思いますか? 他のpythonコードを呼び出すだけでこれを行う方法はありますか?
アドバイスをありがとう。