問題タブ [taskscheduler]
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.
windows-server-2008 - Windows Server 2008: タスク スケジューラが開始したタスクからネットワーク ドライブにアクセスできない
毎日決まった時間に実行するプログラムを作成しました。最初に組み立てたとき、マップされたネットワーク ドライブに到達するのに問題がありました。解決策は、マップされたドライブ文字の代わりに UNC パスを使用することでした。これは、本番環境のタスク マネージャーで 1 か月以上問題なく実行されていましたが、今週、ドライブが利用できないというエラーが発生し始めました。
コマンドラインからスクリプトを実行すると正常に実行されますが、タスク スケジューラから手動で実行するとドライブが表示されません。
関連すると思われる、または他の投稿で取り上げられたタスク設定は次のとおりです。
- ユーザー: フルアクセス権を持つ管理者ユーザーとして実行
- 「ユーザーがログインしているかどうかにかかわらず実行する」: チェックあり
- 「パスワードを保存しない...」: 未チェック
- 「最高の権限で実行する」:チェックあり
- "構成": "Windows Vista または Windows Server 2008"
同じ結果で実行される最も最小限のテスト プログラムを作成しました。コマンド ラインからは正常に実行され、タスク マネージャーから実行するとドライブが表示されません。
関連する可能性のある変更について IT 部門に問い合わせましたが、何も得られませんでした。
どんな助けでもいただければ幸いです
c# - タスク vs 継続スケジューリング
デフォルトのスケジューラにダンプされる CPU 集中型のタスクが多数あるとします (たとえば、デフォルトのスケジューラを介してTask.Run
、またはTask.Factory.StartNew
デフォルトのスケジューラを使用して、すべてが一度に実行されます)。各タスクには継続があります。スケジューラーはいくつかのタスクを開始し、それらを実行状態にします。それらのタスクが終了すると、スケジューラーは元のタスクと継続タスクを組み合わせてキューに入れ、スケジュールを設定し、それらの中から選択する必要があります。組織のタスクをより多く実行するのではなく、継続にどのように優先順位を付けるか。具体的には、タスクが完了し、継続がある場合、その継続は、既にキューに入れられている他のタスクよりもスケジューラーで優先されます。
たとえば、スケジューラーが多数の (T1...Tn) キューに入れられたタスクのうちの 2 つ (T1 & T2) を実行するとします。それらの 1 つが完了すると、スケジューラーは必然的に継続 C1 を実行しますか、それとも T3 を開始することを決定するでしょうか? どちらを選択するかはとにかく決定論的ですか?スケジューラがより多くのタスクを実行することを選択する可能性はありますか? そのため、T1 の終了とその継続 C1 の開始の間にかなりの遅延が生じる可能性がありますか?
更新: サンプルコードを実行して回答を追加しましたが、この観察された動作が保証されているかどうかを知りたいですか?
c# - C# タスク スケジューラで開始されたコンソール プログラムをプログラムで強制終了できないのはなぜですか?
毎日のバッチを実行するコンソール プログラムがあります。コンソール プログラムが使用するデータベースのパラメーターを変更するために使用できる UI があります。
このプログラムを UI から停止および開始できれば素晴らしいと思いましたが、それが可能です。
ただし、マシンを再起動する必要がある場合に備えて、タスク スケジューラを使用して勤務日の前にコンソール プログラムを開始するように設定しています。少なくとも、その日の開始時にプログラムが実行されることはわかっています。
ただし、タスク スケジューラによって開始された場合は強制終了できません。「アクセスが拒否されました」を取得します。
なんで?どうすればこれを解決できますか?
c# - ThreadPool.QueueUserWorkItem と Task.Factory.StartNew のパフォーマンスの違い
いくつかの場所で使用するコードベースがありますThreadPool.QueueUserWorkItem
。スケジューラとしての使用ThreadPool.QueueUserWorkItem
からTask.Factory.StartNew
withの使用に切り替えるのは良い考えだと思いました。TaskScheduler.Default
アップグレード後、アプリケーションの実行時間が非常に高くなりました。これはオンラインの国境を越えたアプリケーションであり、要求を受け取り、通常は 40 ミリ秒から 500 ミリ秒で応答します。これは許容範囲です。Tasks 方式に切り替えた後、応答に 4000 ミリ秒から 38000 ミリ秒もかかる多くのトランザクションが見られますが、これは容認できません。
その流れはかなり複雑です。これには、着信トランザクションの同期ループが含まれ、実際には単純な検証とデータベースへの挿入が行われます。その後、いくつかの並列アクションが起動され、メイン ループは次の着信トランザクションに進みます。並列アクションは、主にログ記録と、データのデータベース集中型品質チェックです。
すべてのロギング アクションは、ThreadPool で開始されました。
品質チェック アクションが開始されました
変更を適用した後、ロギング アクションは次のように切り替えられました
そして、品質チェックアクションはに切り替えられました
ThreadPoolScheduler (TaskScheduler.Default) で Task.Factory.StartNew を使用して実行すると、ロギング アクションが品質チェック アクションを停止する可能性がありますが、QueueUserWorkItem を使用して ThreadPool で直接実行すると、そうではありませんか?
品質チェック アクションのフラグが、TaskCreationOptions.PreferFairness
開始時にこのフラグが設定されていない場合でも、品質チェックがロギング アクションを待機させる可能性はありますか?
powershell - Windows 2012 が powershell スクリプトの実行に失敗する
タスクスケジューラの下で実行するスクリプトを取得しようとしています。PowerShell ウィンドウから次のコマンドを問題なく実行できます
タスクスケジューラの下にタスクを作成し、1日に1回実行するように割り当てました。ただし、タスクが実行されているという証拠はありません。ps1 ファイルはログ ファイルを作成するので、何が起こっているかを確認できますが、ログ ファイルすら作成されていません。
タスクは、正常に実行されたと表示されます。
1) タスク スケジューラが実際に行っていることをデバッグするにはどうすればよいですか 2) タスクに追加する必要があるその他の属性は何ですか。
java - spring でタスクをスケジュールする
Web アプリケーションに Java Spring フレームワークを使用しており、特定の時間にサーバーで実行するタスクをスケジュールしたいと考えています。時間はアプリケーションのユーザーによって与えられます。
調べてみるTaskScheduler
と、次のような例が見つかりました。
同じタスクが定期的に何度も発生します。5秒ごとに「スケジュールされたタスク」を印刷しますが、それを1回だけ印刷したい(例:午前11時35分)
誰でもそれで私を助けることができますか?