タグ

queueに関するaki77のブックマーク (30)

  • 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を用いたジョブキューシステムを作るときに考えたこと - ゆううきブログ
  • Laravel の Queue で非同期処理を実装する(beanstalkd / IronMQ / SQS)

    Home > AWS | Laravel | PHP > Laravel の Queue で非同期処理を実装する(beanstalkd / IronMQ / SQS) Laravel で実装されている Queue について見てみました。 Laravel では Queue を使うことで、時間がかかる処理や、時間差で実行したい処理を非同期で実行することができます。 Laravel 4.2 の Queue では、以下の 5 つのキュードライバをサポートしています。 sync Beanstalkd Amazon SQS IronMQ Redis ここでは、sync、Beanstalkd、IronMQ、Amazon SQS について試してみました。 Laravel での設定 Laravel で Queue を使うには、app/config/queue.phpにて、利用するキューエンジンの選択、設定を

  • 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
  • 『はじめての RabbitMQ』

    アメーバ事業API 基盤グループでプログラマをしている @na_ga です。 API 基盤グループでは、弊社の様々なサービスから利用される共通 API の開発・運用を行なっております。今回は、私が担当した API でメッセージキューとして利用した RabbitMQ を紹介させていただきたいと思います。 はじめにAPI 基盤グループで提供している API には、リクエストをリアルタイムに処理する必要がないものもあります。例えばメール配信 API や、投稿内容の有人監視 API などが挙げられます。 これらの非同期処理が可能な API では、大量のリクエストを受け取るためにメッセージキューを使用しています。 メッセージキューを使用した構成では、リクエストを受け取るプログラムが、受け取ったリクエストから生成したメッセージをキューに格納します。キューに格納されたメッセージは、メッセージを処理

    『はじめての RabbitMQ』
    aki77
    aki77 2013/04/30
  • PHP+Kestrel+Supervisorでお手軽タスクキューイング

    こんにちは、久保田です。 ウェブサービスでは、ユーザのアクションに従ってバッチ処理を行わなければならないケースがままあります。この記事では、バッチ処理の手法の一つであるタスクキューイングをPHPとKestrelとSupervisorを利用して行うやり方の導入を紹介します。 なぜなにタスクキューイング ウェブサービスでは、ユーザのアクションに従って非同期にバッチ処理を行うようなケースがよくあります。 例えばflickrのような写真を共有するウェブサービスで言えば、ユーザが写真をアップロードしたあとに非同期でその画像の複数のサムネイル生成や加工をしなければならないケースがあります。 よく見られるのは、DBにバッチ処理のためのタスクデータを入れておいて、後でcronで定期的に起動するワーカープロセスからバッチ処理を行う方法です。このやり方には、ワーカーを複数プロセスで扱いづらい、処理がリアルタイ

    PHP+Kestrel+Supervisorでお手軽タスクキューイング
  • GitHub - zendframework/ZendQueue

  • Job Queueシステムを自分で設計するときに必要な設定項目メモ

    「Job Queueシステムを使いたいんだけど、今回使いたい言語用のライブラリには低機能のものしかない、追加機能を少しだけ自分で作る必要がある」というときに、どういう機能を最低限作れば、システムリソースの使い過ぎ等を避けられるかメモ。 Google App Engine(GAE)のTaskQueueが以前使ってて便利だったので、「それと同じ機能が最低限あれば、とりあえずOKでは?」みたいな方針で書いてます。用語は基的にGAEに合わせますが、各システムによって様々だったりします。 この記事に書かれた内容が絶対とかそういうわけではないのでご注意ください。 RateとBucket Size トークンバケットアルゴリズムでタスクを実行していく場合、RateとBucket Sizeの値を設定することで、結果的に、単位時間あたりに実行するタスクの数を設定することができます。 具体的な数字は完全にシス

    aki77
    aki77 2013/03/15
  • 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 に勤務しています。記憶の補助として、お客様から解決を依頼された興味深い問題についてメモしたテキスト ファイルを作成し、すぐに参照できるようにしています。その中で頻度の高い問題のカテゴリとして

  • cybozu.com の MQ と性能問題 - Cybozu Inside Out | サイボウズエンジニアのブログ

    いよいよ「サイボウズ・アドベントカレンダー2012」の始まりです。 記事一覧も作成しましたので、ご活用ください。 こんにちは。CyDE-C チームの青木です。 CyDE-C チームとは cybozu.com のミドルウェア層を担当するチームで、アプリケーション層のチームに MQ や全文検索サービス、BLOBサービス、Slash と呼ばれるユーザー管理機能を提供しています。 今回は CyDE-C が提供する MQ のパフォーマンスチューニングについて紹介します。 MQ とは Message Queue の略で、cybozu.com ではタスクの非同期実行の要として使われています。この仕組みはジョブキューやタスクキューとも呼ばれますが、この記事では MQ で統一することにします。 現行の MQ について cybozu.com の MQ は、キューに MySQL 、ワーカーは Java 製プログ

    cybozu.com の MQ と性能問題 - Cybozu Inside Out | サイボウズエンジニアのブログ
  • GitHub - miccheng/php-queue: A unified front-end for different queuing backends. Includes a REST server, CLI interface and daemon runners.

    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 - miccheng/php-queue: A unified front-end for different queuing backends. Includes a REST server, CLI interface and daemon runners.
  • Redisをつかったjob queue - blog.nekokak.org

    最近Redisに興味があったんで 色々な使い方を検討してるんですが、その中でRedisをつかったJob Queueを思いついたので実装してみました。 ちなみにRedisをつかったJob Queueは既出で、githubなんかで使われている resqueというのがあります。 まぁ通常のJob Queueだったら正直別にRedisつかわなくていいのでちょっと違う感じで実装してみました。 # 個人的には普通のQueueだったらQ4MとかQudoとかTheSchwartzでいいとおもう。 # こんなところで無駄にRedisとか使うメリットないわ。 通常JobQueueだと1個ずつjobをとりだして(dequeue)処理を行うと思います。 ただ、ケースによってはある一定の個数のjobをまとめてdequeueして処理を行いたい時があります。 私は普段業務では、Q4Mを多用しているんですがQ4Mにはそう

  • 開発メモ: memcachedプロトコルでメッセージキューを実現する

    前回の記事にて、Kyoto Tycoonでメッセージキューを実現する方法について述べた。今回は、それを実運用にて使いやすくするための諸機能について説明する。みんな大好きなmemcachedプロトコルでメッセージキューを実現してみよう。 ジョブキューとメッセージキュー どうでもいい話ではあるが、ジョブキューおよびメッセージキューという用語はよく混同して使ってしまう。俺定義では、ジョブキューは「ジョブ管理機能」という目的をたまたまキュー構造に基づいて実装しているものであり、メッセージキューはキュー構造に基づく非同期メッセージング機構であって用途は特に限定しない。つまりメッセージキューをジョブキューを実装するのに使うこともあるが、それ以外の用途にもメッセージキューは使われる。またジョブキューをメッセージキューに基づかないで同期的に実装することもできる。 きっと偉い学者さんがどこかでちゃんとした定

  • KyotoTycoon「memcachedプロトコルでメッセージキュー」を試す - 逆襲のWebエンジニア

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

    KyotoTycoon「memcachedプロトコルでメッセージキュー」を試す - 逆襲のWebエンジニア
  • 第10回 ジョブキューで後回し大作戦―TheSchwartz、Qudo、Q4M(1) | gihyo.jp

    連載では第一線のPerlハッカーが回替わりで執筆していきます。今回のハッカーはnekokakさんこと小林篤さんで、テーマは「ジョブキューで後回し大作戦」です。 ジョブキューとは 一時代前は時間のかかる処理もすべてWebアプリケーションで行っていましたが、最近ではいろいろな部分で処理の非同期化が行われるようになってきました。たとえばWebのインタフェース側ではAjaxがその最たるものでしょう。アプリケーションのバックグラウンド側でも今回のテーマであるジョブキューと呼ばれるしくみが多く利用されるようになりました。ジョブキューを賢く上手に利用することで、ユーザにストレスを与えることなく、またサーバのリソースも有効に使えるようになります。 ジョブキューは延々と動き続けるバッチ処理、というイメージが最もわかりやすいでしょう。通常のバッチ処理であればcrondを利用し、一定周期でプログラムを起動して

    第10回 ジョブキューで後回し大作戦―TheSchwartz、Qudo、Q4M(1) | gihyo.jp
  • Twitterで使っているScalaで書かれたオープンソースのメッセージキューサーバー、Kestrel – yusuke.blog

    Kestrelは大規模かつ高速に運用できるメッセージキューサーバーです。Twitterで使っています。 ソースはhttps://github.com/robey/kestrelよりチェックアウトできます。 ・特徴 Kestrelは特徴として – memcachedプロトコルをサポートしており、クライアントのプラットフォーム非依存 – Scalaで書かれており、高速なJVMの恩恵を受けることが出来る – 全部で2500行ほどとシンプル – 基メモリベースで高速だがメッセージはファイルシステムにジャーナルが記録されており耐障害性が確保されている – キューから取り出したメッセージをクライアントがacknowledgeするまで捨てないことで処理漏れを防ぐことができる といったことが挙げられます。 ・Memcachedプロトコル Memcachedプロトコルの基は非常に簡単で、setコマンドで

    Twitterで使っているScalaで書かれたオープンソースのメッセージキューサーバー、Kestrel – yusuke.blog
  • メール受信をTriggerにしてコマンドを実行する代わりにMaildirを監視して負荷を削減する - blog.nomadscafe.jp

    サーバが重かった原因は別だったんだけど、某サービスでメールを受信してプログラムを起動する際のコストが大きいんじゃないかという話をしたので、以下のようなことを考えてみた。 qmailを使っている場合、届いたメールをプログラムで処理したい場合は .qmail に | /path/to/program.pl と書きます。標準入力にメールの内容が渡され、環境変数等を通して表書き発送者アドレス等が取得できます。postfix でも master.cf にtransportを追加し、mapファイルを変更すると大体同じことができます。 参考: RailsとPostfixで受信メールを処理する方法 ただし、この方法だとメールの受信の度にプログラムを起動(exec)するコストが高くなりがちです。特にデータベースに接続したり、アプリケーションのライブラリを読み込んで行くと起動の負荷が上がって行ってしまいます。

  • Webアプリケーションにおける Job Queue システムの構成例と Worker を作る際に気をつけること - blog.nomadscafe.jp

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

  • PHPアプリでメッセージキューサーバを活用する - Zend_Queue -

    はじめに 連載では、PHP上で動作するアプリケーションフレームワークであるZend Frameworkについて紹介しています。今回は前回に続き、分散アプリケーション間でのデータのやりとりを行うための方法の一つである「メッセージキュー」を利用するためのZend_Queueコンポーネントを紹介します。 今回は、Zend_Queueのアダプタ(MemcacheqアダプタとPlatformJobQueueアダプタ)の紹介、次に自分でアダプタを作成する方法、そしてStompプロトコルを利用してメッセージキュー管理サーバにアクセスする方法について説明します。 対象読者 PHPの基構文については一通り理解している方を対象としています。 必要な環境 Zend FrameworkはPHP 5.2.4以降とWebサーバがインストールされている環境で利用可能です。稿ではWebサーバとしてApache 2.

  • GitHub - chrisboulton/php-resque: PHP port of resque (Workers and Queueing)

    php-resque: PHP Resque Worker (and Enqueue) Resque is a Redis-backed library for creating background jobs, placing those jobs on one or more queues, and processing them later. Background Resque was pioneered and is developed by the fine folks at GitHub (yes, I am a kiss-ass), and written in Ruby. What you're seeing here is an almost direct port of the Resque worker and enqueue system to PHP. For m

    GitHub - chrisboulton/php-resque: PHP port of resque (Workers and Queueing)
  • はてなブログ | 無料ブログを作成しよう

    週報 2024/04/28 川はただ流れている 4/20(土) 初期値依存性 さいきん土曜日は寝てばかり。平日で何か消耗しているらしい。やったことと言えば庭いじりと読書くらい。 ベランダの大改造をした。 サンドイッチ 一年前に引っ越してからこんな配置だったのだけど、さいきん鉢を増やしたら洗濯担当大臣の氏…

    はてなブログ | 無料ブログを作成しよう