この記事では、gearman+mysql メソッドを使用して永続化操作を実装します。ご参考までに、詳細は以下の通りです。 1. なぜ粘り強さが必要なのか? gearman のジョブ サーバーの作業キューはメモリに保存されます。未処理のタスクがある状態でサーバーが再起動またはクラッシュすると、これらのタスクは失われます。 2. ギアマンの永続性に関する記事については、公式ドキュメントを読むことをお勧めします。 http://gearman.org/manual/job_server/#persistent_queues 3. 永続化のためのデータベースとテーブルを作成する データベース gearman を作成します。 テーブル `gearman_queue` を作成します ( `unique_key` varchar(64) NOT NULL, `function_name` varchar(255) NOT NULL, `priority` int(11) NOT NULL, `data` longblob NULLではありません。 `when_to_run` int(11)、 主キー (`unique_key`) )ENGINE=InnoDB デフォルト文字セット=utf8; 4. gearmanユーザーを作成する > ユーザー 'gearman'@'%' を作成します (ID: '123456')。 > gearman.* のすべての権限を 'gearman'@'%' に付与します。 > 権限をフラッシュします。 5. gearmandを起動するときに永続パラメータを指定する > gearmand -q libdrizzle \ --libdrizzle-ホスト=192.168.1.100 \ --libdrizzle-port=3306 \ --libdrizzle-user=gearman \ --libdrizzle-パスワード=123456 \ --libdrizzle-db=ギアマン\ --libdrizzle-table=gearman_queue \ --libdrizzle-mysql または以下のように使用する > ギアマンド -q mysql \ --mysql-ホスト=192.168.1.100 \ --mysql-ポート=3306 \ --mysql-user=gearman \ --mysqlパスワード=123456 \ --mysql-db=ギアマン\ --mysql-テーブル=gearman_queue 以下の問題が発生した場合、gearman をコンパイルおよびインストールするときに libdrizzle をインストールしなかったことを意味します。 gearmand: 認識されないオプション '--libdrizzle-host=192.168.1.100' 次のURLからlibdrizzleをダウンロードしてください https://launchpad.net/libdrizzle/+ダウンロード 例: libdrizzle-5.1.4.tar.gz libdrizzleをインストールする > tar xf libdrizzle-5.1.4.tar.gz > libdrizzle-5.1.4 をインストールします ここで --prefix を指定しないことをお勧めします。他のディレクトリを指定すると、gearman は下記のコンパイル時に関連ヘッダーファイルやリンクライブラリを見つけられず、手動でソフトリンクを追加する必要があるためです。 > ./configure > 作成 && インストール 次に、gearmanを再コンパイルしてインストールします > tar xf gearmand-1.1.12.tar.gz >cd ギアマンド-1.1.12 configureのパラメータがわからない場合は、次のコマンドを使用して確認できます。 > ./configure --help gearmanがmysqlの永続性をサポートするには、ここでmysql-develをインストールする必要があります。 > yum インストール mysql-server mysql-devel 先ほど gearman をインストールしたので --prefix を指定していなかったので、ここでは指定しませんでした。必要な場合は自分で指定してください。 > ./configure > 作成 && インストール 設定が完了した後に表示される最後のメッセージ * LIBS: * LDFLAGS フラグ: * アサーションが有効: いいえ * デバッグ有効: いいえ * 失敗時の警告: なし * libsqlite3でビルドする * libdrizzleでビルドする * libmemcached を使用したビルドが見つかりません * libpqでビルドする ※東京オフィスビル1号館が入るビルです。 * libmysql でビルドする * SSL 有効: いいえ * cyassl が見つかりません: いいえ * openssl が見つかりました: はい * -j: 2 を実行します * VCSチェックアウト: いいえ * スフィンクスビルド: : 最後に、libdrizzleとlibmysqlがyesと表示されているのがわかります。 インストールされているか確認する > ギアマンド --help 次のエラーが発生した場合
/etc/ld.so.confを開いて変更してください > vi /etc/ld.so.conf 次の文を追加してください ローカル ldconfigを実行する >ldconfig 上記の gearmand --help を再度実行します。次のメッセージが表示されれば、インストールは成功です。 組み込み: libdrizzle: --libdrizzle-host arg (=localhost) サーバーのホスト。 --libdrizzle-port arg (=3306) サーバーのポート。(デフォルトでは Drizzle) --libdrizzle-uds arg サーバーの Unix ドメイン ソケット。 --libdrizzle-user arg (=root) 認証用のユーザー名。 --libdrizzle-password arg 認証用のパスワード。 --libdrizzle-db arg (=gearman) 使用するデータベース。 --libdrizzle-table arg (=queue) 使用するテーブル。 --libdrizzle-mysql MySQL プロトコルを使用します。 マイグレーション: --mysql-host arg (=localhost) MySQL ホスト。 --mysql-port arg (=3306) サーバーのポート。(デフォルトでは 3306) --mysql-user arg MySQL ユーザー。 --mysql-password arg MySQL ユーザーのパスワード。 --mysql-db arg MySQL データベース。 --mysql-table arg (=gearman_queue) MySQL テーブル名。 libdrizzle経由でgearmandを起動する際に以下の問題が発生する場合 gearmand: キューの初期化中にエラーが発生しました: libdrizzle そしてログの記録は次のようになります エラー 2017-02-22 07:51:02.536574 [ main ] libdrizzle の初期化に失敗しました: 初期化(QUEUE_ERROR) -> libgearman-server/queue.cc:246 MySQL のバージョンが高すぎるためか、他の理由かはわかりません。試してみてうまくいかない場合は、別の方法を試してください。私は他の方法をテストして成功しました。 バックグラウンドジョブを作成する > ギアマン -f テスト -b 123456 次のようにデータベースを表示します。 MySQL 関連のコンテンツに興味のある読者は、このサイトの次のトピックをチェックしてください: 「MySQL インデックス操作スキルの概要」、「MySQL 共通関数の概要」、「MySQL ログ操作スキルの概要」、「MySQL トランザクション操作スキルの概要」、「MySQL ストアド プロシージャ スキルの概要」、および「MySQL データベース ロック関連スキルの概要」。 この記事が皆様のMySQLデータベース設計に役立つことを願っています。 以下もご興味があるかもしれません:
|
<<: Windows 10 で Ubuntu 20.04 LTS をアップデートする方法
>>: 相同性とクロスドメイン、jsonp(関数カプセル化)、CORS原則の詳細な分析
会議中に同僚から開発ライブラリを書き込めないとの報告を受けました。エラー メッセージは次のとおりでし...
ウェブページとは何ですか? HTML ドキュメントがブラウザカーネルによってレンダリングされた後に表...
MySQLサービスを停止するWindowsでは、マイコンピュータを右クリック--管理--サービスと...
1. MySQLサービスをシャットダウンする# service mysqld stop 2. rpm...
目次1. カスタムルーティング2. タブナビゲーション3. データの返却要約する1. カスタムルーテ...
バイオニックデザインといえば、飛行機の発明、ドバイのブルジュ・アル・アラブ、平泳ぎなどを思い浮かべる...
目次導入複数の異なるハッシュを区別するハッシュチャンクハッシュコンテンツハッシュjs キャッシュの実...
Alpine イメージの telnet はバージョン 3.7 以降、busybox-extras パ...
1. Apacheをインストールする # yum インストール -y httpd httpd-de...
今日も私のページが文字化けしていたので、インターネットで関連する問題を検索しました。この方法はかなり...
目次序文基本的な紹介コードの実装基本構造アップロード分析Excel にエクスポート基本構造Excel...
目次序文最適化変数の抽出二次包装 el-tag コンポーネント使用要約する序文バックエンドシステムの...
序文Docker イメージは Dockerfile といくつかの必要な依存関係で構成され、Docke...
目次1. 双方向データバインディングとは1. データの双方向バインディングを実装する必要があるのはな...