非同期にタスクを実行させるためのWebインタフェースを作る【HangFire】
はじめに
Webでポチポチ~ってして、いい感じにサーバが非同期に重たい処理を勝手にキューして実行してくれたら便利だなぁと思うことってあると思います。
例えば人がパラメータを設定して次々に処理を行っていく場合など。CMの位置を指定してCMカットしてエンコードする、みたいな完全には自動化できない処理では重宝するんじゃないでしょうか。本来は完全に自動化できるのがベストなんだとは思いますが。
HangFire
で、ここで使えるのがHangFireというライブラリで、このライブラリは、データベースサーバにキューされたタスクを自動的に(実行用)サーバで処理する仕組みを提供してくれます。
サンプル的には以下のサイトがとても参考になりました。
改善したい点
タスクを実際に登録する場合や、実行しているタスクを表示する場合は標準で用意されているインタフェースでは他のタスクや停止・再キューなどクリティカルな部分も見せてしまうことになるので、サービスとして提供する場合にはラッパーを用意する必要があるかと思います。
現在のHangFireではデータベースの仕様を明に提示しているわけではないので、ソースを読んでいくしかありません。現在はちょっとスケジュールがきついのでそこら辺を改良してコミットすることはできないんですが、ゆくゆくはAPI化などしていきたいところではあります。せっかくのオープンソースなので。
終わりに
今回はC#で処理を書きたかったこともあり、ASP.netで使用できるライブラリを探していました。あんまりC#で実装する利点などは活かせていないんですが、仕組みとして使ってみたかったのもあり試してみました。
読み返すとなんの情報もない駄文になってしまいました…
HUAWEI P9を購入しました。
はじめに
「Huawei Mate 9」が発表されましたが、ライカのダブルレンズとはいかがなものかと思い、今となっては型落ち(系統が違うっぽいのでなんともいえない)な「Huawei P9」を購入してみました。
理由
買いたかった主な理由としては、カメラが優秀なAndroid端末が欲しかったことです。以前はXperia Z3 Compactを使用していたのでカメラ性能に不満はなかったんですけど、フロントパネルが割れてしまい、中華パーツで延命を図るもまたすぐに壊れてしまったのです。
そこで、以前使用していた「SC-02F GALAXY J」にロールバックしAndroidはGALAXY J、iOSはiPhone6の2台体制で生活していました。
GALAXY Jのカメラ品質
最近はコンデジを持ち歩かなくなってしまい、日々の写真などはスマートフォンで撮影することが多くなりました。Android端末にはLINEを入れていることもあり、GALAXY Jで撮影することも多々あるのですが、正直カメラが良いなと思ったことは一度もありません。
ということもあり、iPhoneで撮影したデータをDropbox経由でAndroidに送って送信なんてこともしていました。これならコンデジ持ち歩いたほうが良さそうですよね(笑
ということで、AndroidでiPhoneみたいにいい感じの写真が撮れればいいなってことで購入したのがこの端末です。
P9 ファーストインプレッション
私個人の感想を書かせていただきます。
箱はかなり高級感あって、おお~~力入ってるなぁという感じでした。ちなみにこれ、GALAXY Jで撮影した写真なんですがなかなかにひどい・・・
付属品がもりだくさんですごい
付属品はかなり充実しています。ケースを買おうか迷ったんですけどTPUっぽいケースが付属していたのでそれを使用しています。フィルムもついているなんて太っ腹!
過度なiPhoneリスペクトにドン引き
これに関してはもう本当「シルバー」を購入したことを後悔するぐらいに最悪でした。前の付属品の写真を見てもらえればわかるんですが、ケーブルの梱包の仕方からしてiPhoneリスペクトがヒシヒシと伝わってきます。
iPhoneみたいなデザインってそんなに人気なんでしょうか・・・。iPhone使ってる人に「あ、それiPhoneのパクリ?」みたいなこと言われるの端末が良いだけにすごく残念に思うんですけど、そこらへんどうなんでしょうかね・・・
カメラ性能
さすがにこれはGALAXY Jと比べると雲泥の差です(笑。被写界深度がまず違ってよくボケますし、露出補正・シャッタースピード・ISO感度・測光モードなどデジカメ張りの設定可能項目の多さにビックリします。
ダブルレンズである利点の一つ、ワイドアパーチャ機能ですが、これはあまり効果を発揮できるシチュエーションにめぐり合っていないのでちゃんとレビューはできないんですけど、機能としては楽しいし便利だと思います。
本体性能
これはあまり差を感じられませんでした。元のGALAXY JがRAM 2GBのSnapdragon 800と、当時としては結構いい感じのスペックであるためかと思われますが、特にサクサクなったようには感じません。
むしろタッチにもたつきが感じられ、ナビゲーションバー(戻る・ホーム・アプリ切り替え)のボタンが意図したタイミングで入力することができず何度か入力しなおしになったりします。これは単にこのサイズの端末に不慣れなために感じるだけなのかもしれません。
ユーザインタフェース
アプリ切り替えが使いづらい
Androidのアプリ切り替え、ぼくは標準のカード方式が使いやすいと思ってるんですけど、なんかiPhoneみたいなのになってしまっていて非常に使いづらいです。特にP9みたいな大きい端末だとアプリを切り替えが片手だと困難なので、この方式を取り入れたのは悪手かと思います。
まとめ
もう一回り小さいと良い感じなんですが・・・って印象です。カメラ性能は申し分ないのでバリバリ使っていきたいと思います。スクロールがもたつくなどの問題は単に不慣れなだけかもしれないので、今後注意深く見ていきたいと思います。
しかし、期待したほど性能向上はしてないみたいなので、GALAXY Jなんかはもう3年前の端末なんですが、まだまだ戦えてしまいそうな気がしてきました(笑