この記事では、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原則の詳細な分析
この記事では、線形グラデーションの凹四角形の遷移効果の難しさやアイデアについて説明します。主に、凹四...
01. コマンドの概要実際には、locate コマンドは find -name の別の書き方ですが、...
以下の例では、名前が入っている td の幅が 60px のとき、2 行目の文字数が少ない場合は正常に...
背景:場合によっては、json データをページに直接表示する必要があります (たとえば、インターフェ...
InnoDB インデックスの物理構造すべての InnoDB インデックスは Btree インデックス...
はじめに: Windows 10 を再インストールし、同時にファイルを整理しました。しかし、MySQ...
クリックされたボタンには赤い画像スタイルを実装し、選択されていない他のボタンには灰色の画像スタイルを...
1. 前述の通り数年前、Linux ドライバーのコードを読んでいたときにこのマクロを見ました。長い間...
面接の経験によっては、CSS に関する質問がよく見られ、CSS を使用して三角形を描画する方法につい...
Dockerコンテナのマウントディレクトリ情報のみを表示する docker 検査 --format ...
イギリスBFC: ブロック書式設定コンテキストBFCレイアウトルール内箱は縦方向に次々に配置されます...
Mac で Docker を使用して Oracle をデプロイする方法まずdockerをインストール...
序文プロジェクト要件: Dockeridea に Docker プラグインをインストールし、Dock...
例えば:コードをコピーコードは次のとおりです。 <input type="check...
この投稿では、キャンバスとドラッグ可能なノード インターフェースを使用するデスクトップおよび Web...