問題タブ [sentinel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
98 参照

c++ - 行列に '0' 要素のみを持つ最初の行を見つける最適な方法は?

私はそれを偽装しません.プログラミングタスクの最適化の宿題を受け取りました.私のソリューションが正しいことについて確認する必要があります.

タスクは次のとおりです。行の数が乱数で、各行の長さが異なる行列を取得します。得られたマトリックスにはセンチネルがあります。各行の最後に -1 の値があります。行列の最後の行は -1 の値で始まります。行列の 1 つおきの値は正の整数と 0 です。

タスクは、要素が 0 個しかない最初の行を見つけて (センチネルを除いて)、それを書き込むことですwhile。また、2 つの変数、1 つのループ、およびその中の 1 つの条件のみを使用する必要があります。

全体として、コードは次のような一般的な形式でなければなりません (行列の定義を除く:

そして、これは私のコードです( 内の部分のみmain()で、行列の定義も除外されています):

コードは最後に到達するまで、無効な列をスキップします。または、任意の行の終わりに到達できる場合は終了しますが、すべての要素が 0 の場合にのみ終了できます。

-1 が見つかった場合は必ず終了しますがoszlop、有効な行が見つかったかどうかは の値によって決まり、行列の最後に到達したために終了します。

ランダムな行列でテストしましたが、まだ確信が持てないので、確認が必要です。

私はその仕事をうまくやり遂げましたか?

0 投票する
2 に答える
73 参照

c - センチネルを使用した CI/O スキャンと印刷

次のような一連の数字を含む入力ファイルがあります。

そして、最高値と最低値を記録するコードをいくつか書きました。

ここで、最高値と最低値を削除して、他の数値を出力できるようにしたいと考えています。私の質問は、センチネル値を使用してこの問題に取り組むのが賢明でしょうか? ループする印刷ステートメントを作成し、センチネル値がヒットした場合、何も印刷しませんか?

0 投票する
2 に答える
9242 参照

redis - Linux の redis 2.8.7 センチネル環境設定に関する質問、自動起動する方法、何をサブスクライブする必要がありますか?

今のところ、redis 2.8.7 をキャッシュ ストレージとして使用しようとしています (booksleeve クライアントを使用する .NET Web アプリケーションから)。現時点では非常に興味深くエキサイティングな作業のようです。redis のドキュメントは非常に優れていますが、実際の実務経験が不足しているため、予想される構成を適切に行う方法についていくつか質問があります。

主な構成ソースとして次の記事を取り上げました。

  1. 自動起動機能を備えた redis のインストール (init スクリプトを使用して、再起動後にすべてが適切に再開されるようにします) : http://redis.io/topics/quickstart
  2. Azure への Redis のデプロイ: http://haishibai.blogspot.com/2014/01/walkthrough-setting-up-redis-cluster-on.html

最初のアイデア/仮定 - 1 つの redis マスターと 2 つのスレーブ インスタンスを Linux Ubuntu で実行することです。インスタンスの高可用性を提供するために、センチネルを使用することにしました。したがって、現時点で予想される構成は次のようになります。

  1. MasterInstance: VM1 (Linux、Ubuntu)、ポート: 6379 (Linux の再起動時に自動起動)
  2. Slave1: VM2 (linux、ubuntu)、ポート: 6380 (linux の再起動時に自動起動): slaveOf MasterID 6379
  3. Slave2: VM3 (linux、ubuntu)、ポート: 6379 (linux の再起動時に自動起動): slaveOf MasterIP 6379

VM が起動した後、2 つのスレーブが正常に接続され、マスターと同期していることがわかります: マスターからのトレース サンプル:

次に、センチネル インスタンスをセットアップする必要があります ...

  1. sentinel.conf を最初の redis-stable パッケージから redis を実行している 3 つの VM (1 つのマスターと両方のスレーブ) にコピーしました。
  2. 各構成内で、次の変更を行いました。

    センチネル モニター mymaster MasterPublicIP 6379 2

  3. 各 VM で、次のコマンド ラインを使用してセンチネルを開始しました。

    redis-server /etc/redis/sentinel.conf -- センチネル

その後、センチネルが正常に開始されたという応答を受け取りました...すべての VM で... 3 つのセンチネル インスタンスをすべて開始した後、次のトレース サンプルを取得しました (sentinel.conf ファイルは、スレーブおよび他のセンチネル インスタンスに関する情報で更新されました):

トレース サンプルに基づいて、次の質問があります。誰かがそれらを明確にすることができれば、それは素晴らしいことです:

  1. ここに -dup-sentinel master mymaster 構成が表示されるのはなぜですか... 同じマスターインスタンスに 3 つのセンチネルを追加したためですか (おそらく、redis のインスタンスごとに 1 つのセンチネルを登録する必要があるため、1 つのセンチネルがマスターと他の 2 つの歩哨 - 2 つのスレーブに)?
  2. redisサーバーが起動される方法でセンチネルを起動する方法(VMが再起動されても自動的に)? - 同じアクションを実行して、通常の redis-server インスタンスとして登録する必要がありますか?
  3. Sentinel インスタンスを redis-server と同じ VM でホストしても問題ありませんか?

その後、新しいパテ接続を開始し、redis-cli を開始してセンチネル API を操作しましたが、以下のコマンドで次の応答を受け取りました。

私はここで愚かなことをしたと思います... :( 私が間違ったことと、ターミナル接続からセンチネル API をテストする方法は?

よろしくお願いします。

0 投票する
2 に答える
1115 参照

ios - 引数リストに nil が存在するにもかかわらず、メソッドディスパッチでセンチネルが欠落している

を作成したいのですがUIActionSheet、「センチネルがありません」という警告が常に表示されます。

/Users/....mm:136:173: 警告: メソッドディスパッチにセンチネルがありません [-Wsentinel]

私は本当に何も悪いところが見えません...多分私は盲目です.

このコードを含むファイルは、Objective-C++ ファイルです。

また、そのようなセンチネルが必要なすべての場所でこれらの「センチネル警告」が表示されていることにも気付きました。

0 投票する
1 に答える
249 参照

python - カスタム例外をセンチネル値として使用してもよいですか?

getattrメソッドまたは値を動的に取得するために使用する Python のケースを考えてみましょう。

...ただ、ちょっと待ってください。それはあまり良い振る舞いではありません。これが不適切なgetattr呼び出しであったとしても、暗黙的に None が返されます。これは、この種の関数にとって必ずしも優れた動作ではありません。

(とにかく私が知っていた) 善良でまともな歩哨に直面して、確かな「私を信じてください、あなたはこれを返したくない」値を決定するために、私getattrは例外。このように、「他の男」がかわいいと決めて、この役に立たない歩哨を属性にしない限り、悪い検索は常に明白で捕らえられるべきです.

このように、None を返すとき、メッセージは常に少なくとも上向きになります。また、予想される例外も発生します。そのようなメソッド/ ivar がないオブジェクトの場合は AttributeError、渡された引数が多すぎる場合は TypeError などです。編集:当然、最初に間違ったコード スニペットを投稿します。これが修正された関数です。

これが正しい方法で失敗することを確認するためだけに、余分なコードがたくさんあるように感じます。半神をなだめるためだけに、優先eafp例外を発生させるためのMcGuffinである例外を発生させる関数...うーん。

戻り値が不明または保証されていないこの状況または他の状況で、有効な「失敗」センチネルを宣言するためのより簡単な構文はありますか?

0 投票する
1 に答える
527 参照

redis - Redis デュアル マスターは、障害時に一時的に復旧します

次のように3つのredisサーバーがセットアップされています。

node1 に移動し、redis-server を停止するコマンド (service redis-server stop) を発行すると、センティネルはマスター上の redis がダウンしたことをすぐに検出し、Node2 または Node3 をマスターに昇格させます (まさに私たちが望むもの/予想)。

ここで、ノード 1 に戻って、再び起動したとします (service redis-server start)。「redis-cli info | grep ^role」を発行すると、数秒間 (10 ~ 15 秒) Node1 がまだ自分をマスターと見なしていることがわかります。

その結果、短い期間、マスターが 2 人いることになります。最終的に数秒後、センチネルが状況を整理し、Node1 がスレーブに降格されます。ただし、マスターが 2 つあると (数秒間でも)、データの整合性の問題が発生する可能性があると思います。

ノード 1 がまだマスターであると認識しているときにノード 1 に送信されたデータがスレーブに降格されるとどうなりますか。それに送信されたそのデータは失われますか?

これを回避する方法はありますか?センチナルがスレーブ/マスターであると通知するまで、redis-server が接続を受け入れないようにする設定はありますか? 他にどのように対処できますか?

ありがとうブラッド

0 投票する
1 に答える
947 参照

makefile - Sentinel ファイルを使用した Gnumake アトミック ルールの失敗

私は、 http: //www.cmcrossroads.com/article/atomic-rules-gnu-make? page=0%2C0 にある「GNU Make のアトミック ルール」に関する John Graham-Cumming の優れた記事を使用しようとしています。

ただし、次のような単純なレシピのない別のルールを使用して、2 つのファイル間の依存関係を指定する必要がある場合があります。

これは常に期待どおりに機能しますが、2 つのアトミック ルール間の依存関係を指定すると、惨めに失敗します。以下は、3 つのテストケースを含む単純な Makefile です。

最初のテストケースは正しいことを行い、期待される順序ですべてをビルドします

2 番目のテストケースは、物事を間違った順序で構築することにより、アトミック ルールに対して惨めに失敗します。

3 番目の単純なテストケースは、別のルールを使用して依存関係を指定することが機能することを証明します。

なぜこれが起こっているのか誰でも説明できますか?さらに良いことに、test2 が test1 と同じように動作するように、誰かが回避策を思い付くことができますか? 私は本当に立ち往生しています。

ありがとう、トム

0 投票する
1 に答える
1390 参照

c - 構造体配列の最後に Sentinel 値を提供する方法

10 個の要素 (sentinel 値の場合は 11 番目) の構造体と、最初の構造体要素のアドレスを割り当てる構造体ポインターを作成しました。

構造体配列の末尾にセンチネル値を指定するにはどうすればよいですか?

編集: 構造内の値は動的に変化しています。つまり、10 個の構造用のスペースを作成しましたが、一度に 5 つの要素しか存在しない可能性があります。6位のセンチネル値。
ユーザーが新しい構造要素を入力すると、センチネル値が前方にシフトするなどの理由で、(int i < 10) 条件を使用してすべての値を単純に出力することはできません。

0 投票する
2 に答える
1088 参照

java - Java で別のクラスを呼び出す

さて、私がやりたいことは、2 つのクラスを作成することです。1 つはメイン クラスで、2 番目のクラスはループ センチネル コントロールを作成し、ユーザーが 0 を入力するまでその合計を返します。動作させることができませんでした。私はJavaが初めてなので、他のクラスを呼び出す方法がわかりません。これが私が持っているものです。

クラス 1:

クラス 2:

0 投票する
2 に答える
541 参照

java - プログラム全体を繰り返し、センチネル値を割り当てる

この問題について助けていただければ幸いです。私はJavaにも非常に慣れていないため、用語の誤用やその他の明らかな混乱の兆候があればご容赦ください。これは私が取っているクラスのためのものです。私はこれを広範囲に調べましたが、成功していません。私は自分のプログラムをすべて設計しました (非常に長い時間がかかりました) が、全体を繰り返す方法を見つけなければならず、本質的に、ユーザーが何度も終了することなくプログラムを繰り返すことができるようにする必要があります。整数がないので、while ループの使用方法や while ループの実行方法がわかりません。

私は非常に多くのことを試しましたが、何もうまくいきませんでした。プログラム全体を終了せずに繰り返し、センチネル値を「完了」にして停止させたいと思います。どうもありがとうございました!