タグ

queueに関するy-kobayashiのブックマーク (19)

  • NSOperationQueue スレッドと処理の関係 - A Day In The Life

    iOS4 になって NSOperationQueue クラスの仕様に追加がありました。以前は並列処理しか出来なかったのですが mainQueue メソッドが追加になり逐次処理も出来るようになりました。変更点も含めて NSOperationQueue の使い方をまとめてみます。 NSOperationQueue クラスの使い方をきちんと理解していると NSOperation クラスの非並列実行モードと並列実行モードの使い方を間違えることも少ないと思います。 NSOperation クラスについては以下の記事で詳しく説明しています。 NSOperation 非並列実行モードと並列実行モードの使い分け NSOperationQueue と NSOperation の関係 NSOperationQueue と NSOperation を使うと、バックグラウンドで何か処理をしたい場合に一連の処理をま

    NSOperationQueue スレッドと処理の関係 - A Day In The Life
  • GoとMySQLを用いたジョブキューシステムを作るときに考えたこと - ゆううきブログ

    【追記】2023年3月21日 YAPC::Kyoto 2023で、ジョブキューシステムFireworqの設計と運用実績も含めて発表されました。id:tarao ++ 【加筆修正】 2020年2月16日 執筆時から6年も経過していますが、たまたまこの記事を振り返る機会があったので、日語がおかしいところを一部修正したり、一緒に取り組んだ方々の名前が書かれていなかったところを修正しました。 【追記】2017年12年24日 このエントリのジョブキュー実装がFireworqという名でOSSとして公開されました。id:tarao ++ github.com この記事ははてなエンジニアアドベントカレンダー2014の4日目です。 前回は Mackerelで採用している技術一覧とその紹介 - Hatena Developer Blog でした。 社内の開発合宿で、 id:taraoさん、id:hakobe

    GoとMySQLを用いたジョブキューシステムを作るときに考えたこと - ゆううきブログ
  • キュー構造をJavaで実装してジェネリック型を理解する

    キュー構造をJavaで実装してジェネリック型を理解する:【改訂版】Eclipseではじめるプログラミング(19)(3/3 ページ) 【第3改訂】Java APIのジェネリック型も使って実装 ところで、Sample03.Queueクラスで、なぜ「Object[] values = new Object[SIZE+1];」を「T[] values = new T[SIZE+1];」としないのか疑問に思った読者もいるのではないでしょうか。 ジェネリックスでできないこと 実は、ジェネリック型の中では、型変数Tのインスタンス生成や、型変数を指定した配列のインスタンス生成ができません。また、staticフィールドやstaticメソッド内、static初期化子でも型変数は使用できませんやstaticメソッド内、static初期化子でも型変数は使用できません。 これは、クラスとして生成されるのはSampl

    キュー構造をJavaで実装してジェネリック型を理解する
  • Java SE 6 コレクション・フレームワークのメソッド (3) : Queue, Deque - 倭マン's BLOG

    今回は Queue と Deque の2つ(一覧)。 メソッドは独断と偏見で幾つかにカテゴリー分けしてます: 集合としてのメソッド:size() や iterator() など 要素の挿入:add(), offer() など 要素の削除:remove(), poll() など 要素の検査:element(), peek() など メソッドの役割が分かりにくそうな場合のみ別途説明を。 その他注意点 拡張対象のインターフェースに定義されているメソッドには @Override アノテーションを付与してます。 ただし、インターフェースのメソッドに @Override を付与すると実際にはコンパイルエラーになります。 配列に関するメソッド toArray(..) はここでは無視してます。 Queue インターフェース Queue は優先順位をつけてオブジェクトを格納するのに使用します。 「キュー」と

    Java SE 6 コレクション・フレームワークのメソッド (3) : Queue, Deque - 倭マン's BLOG
  • 大規模分散システム ”Amazon Web Services” の使い方

  • Dead Letter Channel Pattern with RabbitMQ

    メッセージングシステムで送信されたメッセージが正常に処理されなかった場合どうするのか? RabbitMQ 2.8 以降では expire したメッセージや拒否されたメッセージを dead letter として専用の exchange に転送する事ができる。 dead letter になるユースケース 以下のケースで、メッセージは dead letter になる The message is rejected (basic.reject or basic.nack) with requeue=false The TTL for the message expires Enterprise Integratin Patterns との対比 Gregor Hohpe & Bobby Woolf の “Enterprise Integratin Patterns” では 前者は Invalid M

    Dead Letter Channel Pattern with RabbitMQ
  • Kestrel:Reliable Read

    メッセージングシステムで、dequeue 後に正しく処理できずに異常終了したらどうなるのか? Twitter などで利用されている Kestrel には reliable read という仕組みがあり、一度 dequeue したアイテムの処理中にエラーが発生しても、キューの先頭に enqueue できる。 この動作を実際に確認してみた。 Reliable Read Command Memcached プロトコルで reliable read をするには、キューからアイテムを取得する際に / に続けて以下のオプションを指定する。 /open : 一時的に dequeue /close : dequeue を確定 /abort : dequeue を取り消し、queue の先頭に enqueue Reliable Read Examples 以下の4パターンについて、キューの処理と peek

    Kestrel:Reliable Read
  • Building Purgatory: Using node.js to build a delayed queue

  • A quick message queue benchmark: ActiveMQ, RabbitMQ, HornetQ, QPID, Apollo... - Muriel's Tech Blog

    Lately I performed a message queue benchmark, comparing several queuing frameworks (RabbitMQ, ActiveMQ…). Those benchmarks are part of a complete study conducted by Adina Mihailescu, and everything was presented at the April 2013 riviera.rb meet-up. You should definitely peek into Adina’s great presentation available online right here. Setup and scenarios So I wanted to benchmark brokers, using d

  • MySQL をキューに使用する 5 つの微妙な方法とその落とし穴 (翻訳版) - Engine Yard Blog JP | Engine Yard Blog JP

    記事は英語版のブログに2011年9月15日に投稿された記事の翻訳版です。今回のゲスト投稿は Percona の皆さんによる記事です。同社では 2011 年 10 月 24 日と 25 日に Percona Live London というイベントを開催します。この 2 日間にわたるイベントでは、MySQL の分野における経験豊かなスピーカーにより、純粋に技術関係のセッションが行われます。 ロンドン周辺からの参加をご希望の方は、今週が無料パスを手に入れるチャンスです。応募方法は @engineyard のツイッター フィードをチェックしてください。 私は MySQLコンサルタント会社 Percona に勤務しています。記憶の補助として、お客様から解決を依頼された興味深い問題についてメモしたテキスト ファイルを作成し、すぐに参照できるようにしています。その中で頻度の高い問題のカテゴリとして

  • 第10回 ジョブキューで後回し大作戦―TheSchwartz、Qudo、Q4M(3) | gihyo.jp

    Q4M―MySQLを利用したジョブキュー 今まではPerlで作られたミドルウェアとしてのジョブキューを紹介してきましたが、最後にMySQLのプラグインとして提供されるジョブキューQ4Mを紹介します。Q4Mは連載第6回「UNIXプログラミングの勘所」を執筆した奥一穂氏によって作られています。MySQLには依存してしまいますが、利用するプログラミング言語には依存しません。MySQLに接続できるどのプログラミング言語からも利用できます。また、TheSchwartzやQudoのようにミドルウェア側のデータスキーマの制限を受けることがないのも魅力の一つでしょう。 Q4Mの使い方 Q4Mのインストール方法はドキュメントで確認してください。 Q4Mをインストールしたら次はジョブキューで使用するテーブルを定義します。TheSchwartzやQudoでは決められたテーブル定義を使用する必要がありましたが、

    第10回 ジョブキューで後回し大作戦―TheSchwartz、Qudo、Q4M(3) | gihyo.jp
  • MySQL を使ったお手軽メッセージキュー実装 - ドワンゴ 研究開発ブログ

    はじめに この記事では、MySQL を使って簡単なメッセージキューを手軽に実装する方法を解説します。 メッセージキューとは、メッセージを一時的に溜めておき、順次処理するための仕組みです。迅速なレスポンスが必要な Web アプリケーションにおいて、時間のかかる処理を非同期に行うために、バックグラウンドで順次処理していくような場合に利用できます。 簡単なメッセージキューと言っても、大規模な運用にも耐えられる程度の速度と堅牢性を持ちます。 また、ここで解説している方法で作られたメッセージキューは、弊社ウェブサービスであるニコニコ動画に最近追加されたtwitter連携機能でも利用しています。 メッセージキューを作るにあたって 今回実装するメッセージキューは メッセージの追加(push)を高速に行う事ができる メッセージの取得(pop)はある程度高速に行う事ができる 多くのクライアントから同時に p

  • Node.jsなWebアプリでJobQueueなしにラクラク巨大処理を実行 - たごもりすメモ

    Node.jsでWebアプリを書いてるんだけど別に大量のリクエストをさばくわけでもないしWebSocketも使ってないし、じゃあなんでそんなことしてんの、という話。 まず結論だけ書くと、 並列度が低くてよいが長時間かかることが確定的な処理を非同期的に走らせる必要がある場合、普通はそのような用途でもJobQueue/Workerを使って構成するがそういうのは管理も面倒だしインストールも面倒くさくなるのであんまりやりたくない。Node.jsなら普通のWebアプリケーションフレームワークだけでラクに書けていいんじゃね? というひとつの提案です。 同期実行のケース 普通Webアプリケーションフレームワークというのは、一連の処理はクライアントにレスポンスを返すことで完了する。そしてひとつのプロセス/スレッドはリクエストをディスパッチされてからレスポンスを返すまでがそのリクエストに占有される。 ここで

    Node.jsなWebアプリでJobQueueなしにラクラク巨大処理を実行 - たごもりすメモ
  • Objective-Cで、複数スレッドで並行処理させる。(Producer-Consumerパターン) - 黒色槍騎兵のiPhoneアプリ開発日記

    今日は、デザインパターンで言うところのProducer-ConsumerパターンをObjective-Cで実装してみます。(GCDで並列化する方法もありますが、今回は使いません。) 複数の処理があった場合、処理を並行に処理したいようなことがあります。 例えば、Webへのリクエストなど、レスポンスの待ちなどが発生する場合は、直列で処理するよりも並行で処理する方が格段に処理速度を改善できる場合があります。 イメージはこんな形、Producer(仕事を作る人)、Queue(仕事を置く台)、Consumer(仕事を処理する人)という登場人物がいます。 Produceが仕事を作って、作業台に置くと、作業者が仕事を取って処理を行うという動作を行います。 まずは、Queueクラス。仕事の受け渡しを行うクラスです。仕事を置くputQueメソッドと、仕事を取り出すgetQueメソッドがあります。 それぞれ、

    Objective-Cで、複数スレッドで並行処理させる。(Producer-Consumerパターン) - 黒色槍騎兵のiPhoneアプリ開発日記
  • Rails で、Controller に定義されている action を一度に取得する方法はありますか? - QA@IT

    平素よりQA@ITをご利用いただき、誠にありがとうございます。 QA@ITは「質問や回答を『共有』し『編集』していくことでベストなQAを蓄積できる、ITエンジニアのための問題解決コミュニティー」として約7年間運営をしてきました。これまでサービスを続けることができたのは、QA@ITのコンセプトに共感をいただき、適切な質問や回答をお寄せいただいた皆さまのご支援があったからこそと考えております。重ねて御礼申し上げます。 しかしながら、エンジニアの情報入手方法の多様化やQAサービス市場の状況、@ITの今後のメディア運営方針などを検討した結果、2020年2月28日(金)15:00をもちましてQA@ITのサービスを終了することにしました。 これまでご利用をいただきました皆さまには残念なお知らせとなり、誠に心苦しく思っております。何とぞ、ご理解をいただけますと幸いです。 QA@ITの7年間で皆さまの知識

    Rails で、Controller に定義されている action を一度に取得する方法はありますか? - QA@IT
  • GitHub - treasure-data/perfectqueue: Highly available distributed queue built on RDBMS

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - treasure-data/perfectqueue: Highly available distributed queue built on RDBMS
  • KyotoTycoon「memcachedプロトコルでメッセージキュー」を試す - 逆襲のWebエンジニア

    最近低GIダイエットのブログを中心に書いている気がしますが、年末ということで少し時間ができたので前々から導入しようと思っていたKyotoTycoonのメッセージキューを試すことにしました。メッセージキューによる非同期処理といえば、Q4MとかActiveMQをよく使っていていますが、これもKyotoTycoonでいいんじゃない?と思うこの頃です。 何よりmemcachedプロトコルで動作するのがとても助かりますよね。 今回の内容はこちらです。 ktserver起動ファイル(マスター) ktserver起動ファイル(スレーブ) ジョブの登録(PHP) ジョブの取得と削除(PHP) ベンチマークの結果 テスト中に気になったこと kctのデフラグ Net_KyotoTycoonでキューの件数を取得する(PHP) 参考 memcachedプロトコルでメッセージキューを実現する http://fall

    KyotoTycoon「memcachedプロトコルでメッセージキュー」を試す - 逆襲のWebエンジニア
  • ØMQ(zeromq)について調査する。

    ØMQ(zeromq)について簡単に調査したのでメモ。元ネタはØMQ - The Guide。 概要 N-N通信を実現する、socket API風軽量メッセージングライブラリ。 自動的な再接続や、メッセージのキューイングを行ってくれる。 複数のメッセージングパターンと呼ばれるものを組み合わせることによって、柔軟なメッセージ配信を行うことができる。 ライブラリについて socket APIライクなC APIを持つ。以下socketは、zeromqのsocketを指す。 zeromqはコンテキストというものを通じて使う。1コンテキストに、I/Oスレッドが1つ割り当てられる。基1プロセスに1コンテキストでOK。複数のcontextを持つことはできるし、その場合は同じ個数のI/Oスレッドが走る。 zeromqのsocketは、プロセス内通信(スレッド間通信など)、プロセス間通信、TCP、UDPマ

    ØMQ(zeromq)について調査する。
  • Webアプリケーションにおける Job Queue システムの構成例と Worker を作る際に気をつけること - blog.nomadscafe.jp

    Webアプリケーション内で処理を直列に実行せずにJob Queueに回して非同期に実行することが多くなって来て久しいと思いますが、そのおすすめ構成と気をつけることについてつらつらと。 1) 既存のデータベースをキューとして使う構成例 1つ目はMySQLなどのデータベースをキューとして用いる例。既にアプリケーションで利用しているデータベースにキュー用のテーブルを作成して利用します。データベースを利用したキュー管理の仕組みとしてJonk、Qudo、TheSchwartzなどがPerlでは有名どころです。 依存するミドルウェアが増えないので最もシンプルな構成になると思います。 上記の図ではWorkerはアプリケーション内で実行することで冗長性を確保しますが、キューを格納するデータベースはSPOFになります。しかし、、データベースに障害があった場合キューだけでなくすべてのサービスが停止すると思われ

  • 1