Azure WebSitesで定期的に実行するWebJobの作成方法
Azureのクラシックポータルを使用してタイトルのことをしました。ちなみにクラシックポータルを利用するために無料試用のサブスクリプションを購入しました...
中の人のブログによるとAzureSchedulerとInternal Webjob Schedulerを使う方法があるのですが、前者はどうやらDreamSparkのサブスクリプションでは利用できなく、後者はスタンダート(F1ではダメ)の料金プランでないと使用できないようです。しばやんさんのサイトの説明がわかりやすいです。
Azure Web Apps で crontab っぽく WebJobs のスケジュール実行が出来るようになっていた - しばやん雑記
クラシックポータルの場所は新ポータルのタイルからもいけます。
このポータルからWebアプリを新規に作成し、詳細画面のトップのダッシュボードやら監視やらの項目からWebジョブの項目を選択し、新規に作成します。スケジュールを指定した時間で実行するように設定すれば動いてくれます。
無料試用版は最高でも1時間周期で、それ以上短い周期で実行することはできないそうです。
DreamSparkアカウントではazure classic portalにアクセスできない
I can't access old portal? manage.windowsazure redirects me to new portal?
指定時間にジョブを発火させたいと思い、一番簡単そうなクラッシックポータルで時間をGUIで指定してやろうと思ったらどうやらDreamSparkサブスクリプションではできないらしい。ソースは上記。本当にありがとうございました。
androidで一定時間後にTTSで何かをしゃべらせる
手順はこうです
- ActivityからAlarmManagerでreceiverをセットする
- 指定時間後にreceiverからserviceを呼び出す
- serviceのなかからTTSを呼び出す
順を追って説明します。その前にManifestで以下のように追記します
this is used in newsgetter and for explain code
application内にreciverとserviceを使うことと、パーミッションにSET_ALARMを追加します。指定のしかたは書いてあるような感じです。
次にActivity内でのAlarmManagerのセットのしかたです。これはすでにネットにたくさんありますね。ざっくりいきます。
こんな関数をActivity内から呼び出すことでアラームをセットします。10秒後にRTC_WAKEUPでよびだすAlarmManagerです。
次にAlarmManagerで使われているレシーバです。
16行目のcontext.startServiceが重要です。TTSクラスを入れて呼び出します。ここで直接TTSを呼び出そうとすると事故ります。それでserviceがこちらです。
萌ゆるTTSで朝は起きれるのか
サーバ(AzureWebsite)でフィードをとってアプリでTTS(TextToSpeech)させようとしている.
こやつに朝、目覚まし代わりにニュースを読ませて起こしてもらおうと思っている.うむ、すばらしい.ついでにいい感じのキャラがいると映えるぞお^~
最初はゆっくり(AquesTalk)を検討したのだがサーバ側で走らせようとしたらutf-8に対応した関数の挙動がおかしかったりできた実行ファイルをkuduで走らせたら走らなかったりした.サーバがだめならクライアントで動けばいいだろと思ってAquesTalkのAndroid版の開発をしたのだが、AndroidStudioのエラーログを見てもrunningだけはいて死んでいたので断念した.
で、そもそもAndroidにはTTSの開発環境があったのでそれを使うことにした.
ついでにKDDIのN2の声がいい感じだったのでPlayStoreからそれも入れた.
早速TTSさせようとアンドロイドで日本語音声出力:音声読み上げを参考に書いたら動いた.うむ、未来は明るい.ちなみに私のスマホはXperiaZ3compact Android5.0.2です.
あとはサーバ側をAPI化すればよさそう.
simplexml_load_fileでrssが拡張子のRSSを取得できない
ちょっとこまったので覚書
phpにはsimplexml_load_fileという便利なxmlをいい感じに分解してくれる関数がありますが、これを使ってはてなのrssを取得しようとしたときにこけました.
http://b.hatena.ne.jp/hotentry/it.rss
一見サイトを訪れただけではどこにrssがあるのかわかりませんでしたが、ggったっらurlに.rssとつければそれがrss扱いになるということ.素晴らしい、感動した.
まず、これをphpから取得してみます.
...何も起こらない.
よくよく他のsimpleなんたらの使い方を見てみるとすべて拡張子がxmlになっているではないか.hmm
そこでfeedburnerなるものを使ってみました.
これを使うと登録したフィードのurlがfeedburner.google.com/nantokaになります.
このurlをsimplexml_load_fileを実行するとあら不思議、フィードがとれるんですね.
windows10のバグ
windows10でバグを発見したという話はよく聞くし、既出しているかもしれないがなんとなく投稿
snipping toolでキャプチャし、英語の小文字、JPGで保存。
そのあとにエクスプローラからファイル名を大文字に書き換えるとエクスプローラ上には小文字のままで表示されてしまう。しかし、プロパティやプロンプトでみてみると変更されている。エクスプローラのバグなのだろう。