概念実証として、この非常にシンプルなTwitterフレンズクローラーを作成しています。これが何をするかです:
- Twitterアカウント「twitter-user-1」のCrawlJobを実行する
- 「twitter-user-1」の友達をすべて探す
- 「twitter-user-1」の友達全員にCrawlJobを実行する
これまでの私のコードは次のようになります。
def main( args:Array[String] ) {
scalar {
grid.execute(classOf[CrawlTask], "twitter-user-1").get
}
}
class CrawlTask extends GridTaskNoReduceSplitAdapter[String] {
def split( gridSize:Int, arg:String): Collection[GridJob] = {
val jobs:Collection[GridJob] = new ArrayList[GridJob]()
val initialCrawlJob = new CrawlJob()
initialCrawlJob.twitterId = arg
jobs.add(initialCrawlJob)
jobs
}
}
class CrawlJob extends GridJob {
var twitterId:String = new String()
def cancel() = {
println("cancel - " + twitterId)
}
def execute():Object = {
println("fetch friends for - " + twitterId)
// Fetch and execute CrawlJobs for all friends
return null
}
}
私はすべてのTwitterインタラクションのためにJavaサービスを準備しています。既存のジョブ内に新しいジョブを作成し、それを元のタスクに関連付ける方法を理解するために、いくつかの例が必要です。
ありがとう| スリランガン