火花流和Twitter自定义接收器

时间:2015-04-24 11:30:18

标签: java multithreading apache-spark twitter4j spark-streaming

我在我的自定义Twitter接收器中创建一个线程来更改关注用户:

first = true ;
if (first) {
                new Thread() {
                    public void run() {
                        while (true)
                            try {
                                System.out.println("begin ---------------");
                                sleep(60 * 1000);
                                // get scores from mongodb
                                ArrayList<Long> r = getScores("Twitter", "polScore","CUCB");

                                if (r.size() != 0){

                                 FilterQuery query = new FilterQuery();
                                query.follow(arrayListToArray(r));

                                // follow new users
                                newTwitterStream.filter(query);

                                System.out.println("Changed !!!!!!!!");

                                }
                            } catch (InterruptedException e) {
                            } catch (Exception e) {
                                System.out.println("Exception : "
                                        + e.getMessage());
                            }
                    }
                }.start();
                first = false;
            }

TwitterStreamingFactory我{1}}每1分钟存储rdd得分,接收方的线程等待60秒,以便从mongodb获得分数。 问题是有时线程在我的火花流上下文存储它们在mongoDB之前得分,有没有办法处理像等待和通知???

在主要我有这个:

mongodb

我创建了一个Twitter接收器的实例,用户可以在开始时关注它,我在火花流中使用它,我要做的是改变用户跟随火花流而不停止火花流。

谢谢,

0 个答案:

没有答案