0

私は、PubsubIOを使ってクラウド関数からpubsubにメッセージを送り、Javaでグローバルウィンドウからメッセージを受け取っていました。時々、クラウド機能から渡されたメッセージのいくつかは、Javaから引き出されたときに表示されません(私の場合、200のうち4つが見逃されました)。PubSubのメッセージが落ちた

マイクラウド機能:

const PubSub = require('@google-cloud/pubsub'); 
const pubsub = PubSub(); 

exports.messagePublisher= function(event,callback) { 
    const file = event.data; 

    function publishMessage(){ 
    console.log('Publishing message to Scheduler: '+file.name); 
    //Get Topic 
    const topic = pubsub.topic('projects/analytics-and-presentation/topics/newTestTopic'); 

    var publisher = topic.publisher(); 

    var message = "sampleText"; 

    // Publishes a message 
    publisher.publish(new Buffer.from(message), (err) => { 
     if (err) { 
     console.log('Error occurred',err); publishMessge(); 
     } else { 
     console.log('Message published'); 
     } 
    }); 
    } 

    if (file.resourceState === 'exists' && file.name) { 
    publishMessage(); 
    } 
    callback(); 
}; 

私はメッセージのいずれも低下したことはありません飽きていることを確認するために何をすべきか?

答えて

0

ほとんどの場合、メッセージは遅延データとして宣言されたため、削除される可能性があります。あなたが設定することができ

に(私は強く最後まで始めて完全にそれらのセクションを読んで、というよりも、私はリンクだけのサブセクションすることをお勧めします)ウィンドウイングを参照し、プログラミングガイドセクションをトリガ、特にWatermarks and late dataHandling late dataDefault trigger遅いデータとしてカウントされるものをより許容するか、遅いデータをまったくドロップしないようにするためのウィンドウ/トリガー戦略。

また、PubsubIOがイベントタイムスタンプを割り当てる方法を設定する必要があります。 javadocを参照してください。

関連する問題