• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:一定周期ごとのバッチ処理)

一定周期のバッチ処理方法と負荷低減について

このQ&Aのポイント
  • 一定時間ごとにバッチ処理を行うためには、Windowsのタスクを利用する方法が一番簡単です。
  • ループ処理は負荷が高いため、避けるべきです。
  • APIを利用する方法もありますが、今回は具体的なAPIの提案はできません。

質問者が選んだベストアンサー

  • ベストアンサー
  • 2ch
  • ベストアンサー率51% (64/125)
回答No.6

タスクから実行されるEXEは、バックアップをそのまま実行するEXEであるのはダメです。 バックアップを行うEXEを別に用意して、タスクから起動したEXEがそれをコールしたらよいです。 それが正常終了したか否かをチェックする機能を持つ事が必要です。 バックアップEXEがコケタなら、再度行うようにしたらよいです。 EXEの機能分割を考えましょう。

torokichi
質問者

お礼

ありがとうございます。 タスクの失敗というのも考え、それぞれ3種類の機能を分割した形で作り直そうと考えてます。 ログファイルですが、データの欠損確認のログはとっていましたが、実行自体のログはとっていませんでしたので、これを追加してチェックすることにしました。 今後とも宜しくお願いします。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (5)

  • Smilie
  • ベストアンサー率0% (0/1)
回答No.5

DoTimerというフリーソフトがあります。 これを毎時起動にして起動用exeをキックし、テキストファイル等に起動日時を記憶させ毎時exeと毎日exeと年2exeの起動を起動用exeで制御したらいかがでしょうか

torokichi
質問者

補足

ありがとうございます。 DoTimerというソフトを検索してみましたが、DL系や検索エンジンをかたっぱしから探しても見つかりませんでした。 もう少し情報があればうれしいのですが。

全文を見る
すると、全ての回答が全文表示されます。
  • 2ch
  • ベストアンサー率51% (64/125)
回答No.4

日々や時間単位は、自動で行う タスクが一番軽い 年二回のバックアップは 4.時間を守るA型の健康バカを雇う

torokichi
質問者

お礼

書いてくださった皆さんにまとめてお礼を申し上げます。ありがとうございます。 年末年始の件については、一応半年あるのでそれまでにアップグレードして対応ということにしました。 さて、やはりタスクを利用するのが簡単って事でしょうね。 補足しましたが、タスク実行失敗が起こるのでそれをクリアしていかなくてはなりません。プログラムの無駄を減らせば、失敗もなくなるかな?と淡い期待をしていますがw

torokichi
質問者

補足

タスクで実験中です。 そこで、疑問ができました。 PCの稼動が高くなって重くなると、タスク実行が失敗する現象が起こりました(1時間毎のタスク、1日2~3回程度失敗) プログラムに問題があるのか検討している状況です。

全文を見る
すると、全ての回答が全文表示されます。
noname#27115
noname#27115
回答No.3

3.Timerを貼り付けても負荷は高くなったかな?

torokichi
質問者

お礼

タイマーのIntervalは、確かInt型だったと思いました。 今回のような毎時の場合だと、Int型では無理だと思います。

全文を見る
すると、全ての回答が全文表示されます。
  • Seiryo
  • ベストアンサー率13% (27/203)
回答No.2

タスクでできるならタスクでやればいいじゃん。

全文を見る
すると、全ての回答が全文表示されます。
  • 2ch
  • ベストアンサー率51% (64/125)
回答No.1

1番 タスク に 一票

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • バッチファイルの繰り返し処理について

    初心者でよくわからず質問させていただきます。 バッチファイルで以下の処理をさせたいのですが、そもそも可能なのでしょうか? 可能であればどのように記述するのかヒントをいただければ助かります。 ある処理を実施して、ファイルサイズが10kbyte以上になるまで処理を繰り返したいです。 そこで、以下のような処理を考えています。 1.ファイルサイズをみて、10k未満であれば、再度処理させる 2.10回繰り返しても10kbyte未満の場合は、アラートメールを指定の固定アドレスまで飛ばしたあと   ループを抜けて、次の処理へ進む。 宜しくお願い致します。

  • 動画の再生

    Xvid + ogg].mpgの動画の再生方法を教えてください PC環境は win2000PRO SP4 meor384k,

  • エクセルの処理速度

    エクセルでVBAを使ってマクロを組んでいるファイルがサーバーに保存されています。 これをAとB二つのPCで実行した時、AとBで処理速度に違いがあり、AのPCのスペックの方がBより高い(AはBより2年程度後に購入)のですが、Aで実行した方が遅くなります。 処理時間はBが3秒だとすると、Aは5秒くらいといった感じです。 実行する時間帯を変えても必ずそのような差となるので、ネットワーク負荷の違いではないと思っています。 ネットワークに繋がっている環境などはどちらも同じです。 ハード以外で明らかに違う所は、OSがAはwinXP-Pro、Bがwin2kです。 どのような所を調べれば良いでしょうか? CPUは両者共Pen4(周波数は忘れましたがAの方が高い) メモリはAが1G、Bが512Mです。

  • 1台のPCを複数のユーザーが遠隔操作で共有するフリーソフト

    WindowsXP SP2 や Windows2003サーバーでリモートデスクトップを利用した時のように、複数のユーザーから遠隔で1台のPCを利用したいと考えております。 こちらの環境はサーバーが「WinXP HOME」もしくは「Win2000 PRO」があり、クライアントは「Win2000 PRO」のみという状況です。 「WinXP PRO SP2」は手に入りません。 そこで、フリーソフトで同じような事ができるものがあれば教えていただけないでしょうか?

  • 2005で動くのに2008では処理負荷が高い

    ドットネットで作成されたアプリケーションを SQLサーバーを用いてクラサバ形式で業務を行います。 本番実施前に、ノートPCにSQLサーバー2005エクスプレスを入れて テスト環境として1台のみで使用していた際は問題ありませんでした。 本番では、WIN2008サーバーにSQLサーバー2008を入れて使用したのですが、 サーバーに対して、クライアント1台しか接続していない状態でも処理負荷が高く、 動作が非常に遅くなり、ノートPCよりレスポンスが3倍ほどかかるようになりました。 データ件数は同じ状態です。(15万件ほど) 一部のやや複雑な条件抽出処理では、本番サーバー環境側は処理が停止してしまいます。 (ノートPCではやや時間がかかるもののきちんと結果が戻ってきますが、  本番側は数時間待っても結果が戻らず停止と同じ状態です) 本番サーバーの状況として、メモリ、ネットワークは殆ど使用しておらず、 CPUのみ25%を占有し続けている状態で、処理負荷がかかっているようです。 当然ながらノートPCのCPUよるは遥かに高性能です。 本番環境のSQLサーバ2008で初期データを作成する際、 2005エクスプレスで作成した初期データ(MDFファイル)を 2008側でアタッチしただけです。 テスト環境のノートPCの方が性能が良く、 高額な本番環境のサーバーが使いものにならない状態です。 直すべき点等があればご教授お願いします。

  • C言語のタイマー処理

    [環境] WindowsXP 32bit gccコンパイラ [質問] time.hを使っても使わなくても良いのですが、 24時間経過するまで、処理をし続けるようにしたいです。 (例) while(24時間未満) { func_A(); func_B(); func_C(); } ↑24時間たったら、処理を抜ける。 何か良い方法はございませんでしょうか。 尚、Linux上でも動作させたいため、WIN_APIは使用せずに実装したいです。

  • パイプ処理について

    お世話になっております。 コンソールをパイプ処理を通じて制御するWin32アプリケーションプログラムを作成しています。 パイプを作成して、コマンドプロンプトを起動、 netcap(Windowsのサポートツールです)の起動成功までは出来ました。 問題なのは、 このnetcapを終了させるためにはスペースキーを押さなければならないことです。 スペースキーを押さないと正しくログが作成されないみたいなのですが、 どのようにすればスペースキーが押されたこと子プロセスが認識できるのでしょうか? keybd_event()を使用してもうまく受け取ってくれませんでした。 よろしくお願いします。 【環境】 WinXP Pro SP1 VC++6.0

  • Excelマクロ処理の裏でWordを使いたい

    現在、Excelマクロツールの改修を行っています。 PJ毎のデータを集計するツールで、データが多い為処理に著しく時間がかかります。 軽量化による処理時間も限界なようなです。 せめて処理をバックグラウンドで走らせた状態で他の作業をしていたいのですが、マクロが動いている間、他のOfficeツール(WordやOutlook)もほとんど使えない状態になります。 繰り返しの多いループの部分では「DoEvents」で用いて、処理をシステムに戻すようにしているので、 固まってはいないのですが、WordやOutlookはほぼ反応しません。 VBA処理中に他のOfficeツールが使用できるように、VBAの記述で対応できないでしょうか? 自分の環境:  OS:Windows 7 Pro SP1 Office:Microsoft Office 2010 Plus よろしくお願いいたします。

  • C++でMySQLを処理したいです

    OS:WinXP tool:bcpad(Borland C++Compiler5.5) 上記の環境でプログラミングをしています。 データベースの処理を勉強したくてMySQLをインストールしました。 しかしどうやってC++で処理するのかまったく分かりません。 googleで「C++ mysql api」で検索したところ以下のサイトが見つかりました。 http://forum.mysql.com/doc/refman/4.1/ja/cplusplus.html Win対応しているのは「mysql++-1.7.1-win32-vc++.zip」 だけのようですが、これを解凍すればいいんでしょうか? また解凍したものをどのように扱っていいかも分かりません。 (bcc55フォルダのどこかに置けばいいんでしょうか?) とても初歩的な質問で申し訳ないんですが、ご教授お願いします。

  • cookie処理について

    cookieの事で質問させていただきます。 現在、本番稼動に向けて総合テストを行っています。 本番環境は、負荷分散させるためにcookieを参照し、2台で処理を振り分けています。 アプリケーション動作確認の際、自分が作成した部分をちょっといじっているとエラーが発生して落ちてしまいます。 落ちたところでも処理機能は、javaScriptでツリー表示を制御しています(UL,LIタグを利用)。 その処理で、どの項目が選択されたかを保持するためにcookieを使用していて、更新するときに以下のように書いています。 document.cookie="treeKey=" + opennodes; opennodesには1.3.5のようにピリオド区切りで入れています。 項目をリンク表示させていて、リンクを押下するとクッキーに書き込みに行くようになっています。 落ちている理由は、セッションの値がとれずシステムエラーを出していて、ログを見ると、リンクを押下した際にもう一方のサーバに接続してアクションを行おうとしていました。 alertを出して、リンク押下時にcookieに書き込まれたところまでは確認しています(セッションIDも同一) こういう負荷分散処理でcookieを使用(書き換えを頻繁に行うような使用方法)はだめなのでしょうか? 以上、説明がわかりにくいかもしれませんが、よろしくお願いいたします。