4

mysqlテーブルでjavascriptクエリを停止し、次の行が挿入されるまで待つ方法はありますか?

たとえば、関数を使用します。

var query = connection.query('SELECT * FROM table');

テーブル内のすべての行を読み取り、それらを表示して次の行が挿入されるまで待ち、挿入された行を読み取り、他の行が挿入されるまで待ちます。

基本的に、他のテーブルがPHPまたは他のスクリプト(トリガーイベント)から更新されるたびに更新されるテーブルを読み取る必要があります。

javascript mysqlクエリでカーソルのスライドに関する情報が見つかりません。おそらくそれに関する記事がいくつかありますか?

4

1 に答える 1

2

そのように答えをポーリングすることができます。ノードにmysqlライブラリを使用したことがないので、APIを作成しました。

行数間隔
varconnection= ...、lastCount;

funciton mysqlPoll() {
    var query = connection.query('SELECT count(field) as count FROM table');

    query.exec(function(result) {
        if (result.count != lastCount) {
            //Select all the rows here using offset to skip the already processes
            //process them
            lastCount = result.count;
        }
    });
}

setInterval(mysqlPoll, 500); //every 1/2 second

プライマリ自動インクキー間隔がある場合はより良い

var connection = ...,
    lastCount = 0;

funciton mysqlPoll() {
    var query = connection.query('SELECT * FROM table WHERE primaryId > '+lastCount);

    query.exec(function(result) {
        if (result.count != lastCount) {
            //Select all the rows here using offset to skip the already processes
            //process them
            lastCount = lastResultsPrimaryId;
        }
    });
}

setInterval(mysqlPoll, 500); //every 1/2 second

もう1つのオプションは、node.jsでソケット(net、httpなど)を開き、phpスクリプトからpingして更新をトリガーすることです。

お役に立てば幸い

于 2012-11-23T02:36:52.187 に答える