4

私は数か月前に会社でWeb開発者として仕事を始め、とりわけColdfusionアプリケーションの束を管理していました。どうやら、スケジュールされたタスクは何年も前に設定され、数年前に以前のWeb開発者の1人の下で機能しなくなるまで正常に機能していました。なぜそれが機能しなくなったのかは誰にも分かりませんが、今ではそれを修正するのが私の仕事です。これはWeb開発者としての私の最初の仕事であり、仕事を始めたときはCFを知りませんでした(CFが存在することはほとんど知りませんでした)。また、今朝、スケジュールされたタスクについて学び始めただけなので、まったくの初心者であることを知ってください。

このファイルは基本的なもので、データベース内のテーブルを更新するだけです。ブラウザでURLを実行すると(これは過去数年間実行されてきたものです)、正常に実行され、すべてが更新されます。毎晩実行するように設定されたスケジュールされたタスクは、ファイルを更新していません。CF Adminでログをオンにして、今朝のさまざまな時間に実行するように設定し、手動で実行するように指示してみました。ログによると、(エラーなしで)実行されていますが、ファイルは更新されていません。ファイルの大部分をコメントアウトして、変数などを含まない基本的な電子メールを送信するように指示しようとしましたが、同じ結果が得られています。

何か案は?ここから何をしようかわからない。私はオンラインで解決策を探してみましたが、私の状況に似ていることがわかった唯一の投稿はこれです。ここでは、問題はスケジューラーが利用できない変数である可能性があると人々が示唆しているようです。

コールドフュージョンのスケジュールされたタスクがメールを送信しない

現在、私のページには変数がありません。そのページの提案に従って、CFSCHEDULEを介してタスクを実行しようとしましたが、以前と同じ結果が得られました。他の提案のいくつか(サーバーモニター/ FusionReactor / cflog)私はどうすればいいのかわからないので、それらを試していません。

編集:現在、これはコメントアウトされていないページ内の唯一のコードです:

<cfmail 
    to="[e-mail address]"
    from="[e-mail address]"
    Subject="is it running at all?">
    Is it running?
</cfmail>

編集2:さて、今私は電子メールのコードの前後に次のようなものを持っています:

<cflog 
text = "before e-mail"
application = "yes"
log = "Scheduler"
type = "information">

実際にファイルのURLにアクセスすると(電子メールも送信されます)、ログメッセージが表示されますが、CF管理者からスケジュールされたタスクを実行するように指示した場合は表示されません。ブラウザでファイルを開くとメールが送信されるので、メールサーバーに問題はないと思います。

編集3:はい、電子メールアドレスはプレーンなハードコードされた文字列です。ただし、Application.cfmファイルで「カバー」されているとはどういう意味か正確にはわかりません。サイトのトップレベルにApplication.cfmファイルがありますが、この特定のサブディレクトリ内にはありません。アプリケーションスコープ変数は多数ありますが、現在のようにファイルで使用されているものはありません。

編集4:説明ありがとうございます。私が言ったように、CFに関しては合計n00bなので、助けてくれてありがとう。このアプリケーションのApplication.cfmページは、ログインしているかどうかを確認し、ログインしていない場合は、ログインページにリダイレクトします。それが問題になるのでしょうか?

編集5:イェーイ!それが問題だったようです。ありがとう、ありがとう、ありがとう!リー、私がそれを選ぶことができるように、答えとしてそれを提出してください。あなたは私のヒーローです!

4

1 に答える 1

4

(コメントより)

長い目で見ますが、スケジュールされたタスクは、Application.cfm / Application.cfcファイルでカバーされているディレクトリ内にありますか?質問する理由は、親Application.cfmファイル内のコードが.cfmスクリプトの前に最初に実行されるためです。Application.cfmファイル内に、要求を中止したりリダイレクトしたりするコード(権限チェックなど)はありますか?

于 2012-12-03T22:14:56.423 に答える