JavaでRedisのキューを監視する方法

JavaでRedisキューをリスンするには、RedisのPub/Sub機能を利用します。コード例を以下に示します。

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPubSub;

public class RedisQueueListener extends Thread {
    private Jedis jedis;
    private String channel;
    private JedisPubSub jedisPubSub;

    public RedisQueueListener(Jedis jedis, String channel) {
        this.jedis = jedis;
        this.channel = channel;
        this.jedisPubSub = new JedisPubSub() {
            @Override
            public void onMessage(String channel, String message) {
                // 处理接收到的消息
                System.out.println("Received message: " + message);
            }

            @Override
            public void onSubscribe(String channel, int subscribedChannels) {
                System.out.println("Subscribed to channel: " + channel);
            }

            @Override
            public void onUnsubscribe(String channel, int subscribedChannels) {
                System.out.println("Unsubscribed from channel: " + channel);
            }
        };
    }

    @Override
    public void run() {
        try {
            jedis.subscribe(jedisPubSub, channel);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            jedis.close();
        }
    }

    public static void main(String[] args) {
        Jedis jedis = new Jedis("localhost");
        RedisQueueListener listener = new RedisQueueListener(jedis, "myQueue");
        listener.start();
    }
}

上記の例では、RedisQueueListenerクラスはThreadクラスを継承しています。これにより、リスナーをバックグラウンドで実行できます。run()メソッドで、jedis.subcribe()メソッドを使用して、指定されたチャンネルを購読し、受信したメッセージをJedisPubSubクラスのコールバックメソッドで処理します。main()メソッドでJedisインスタンスを作成し、RedisQueueListenerインスタンスを作成し、リスナーを実行します。

実際の状況に合わせて、必要に応じてコードを変更できます。

bannerAds