浏览代码

Add follow seeder

Daniel Supernault 7 年之前
父节点
当前提交
7d999f0995
共有 1 个文件被更改,包括 60 次插入0 次删除
  1. 60 0
      app/Console/Commands/SeedFollows.php

+ 60 - 0
app/Console/Commands/SeedFollows.php

@@ -0,0 +1,60 @@
+<?php
+
+namespace App\Console\Commands;
+
+use App\{Follower, Profile};
+use Illuminate\Console\Command;
+use App\Jobs\FollowPipeline\FollowPipeline;
+
+class SeedFollows extends Command
+{
+    /**
+     * The name and signature of the console command.
+     *
+     * @var string
+     */
+    protected $signature = 'seed:follows';
+
+    /**
+     * The console command description.
+     *
+     * @var string
+     */
+    protected $description = 'Seed follows for testing';
+
+    /**
+     * Create a new command instance.
+     *
+     * @return void
+     */
+    public function __construct()
+    {
+        parent::__construct();
+    }
+
+    /**
+     * Execute the console command.
+     *
+     * @return mixed
+     */
+    public function handle()
+    {
+        $limit = 10000;
+
+        for ($i=0; $i < $limit; $i++) { 
+            try {
+                $actor = Profile::orderByRaw('rand()')->firstOrFail();
+                $target = Profile::orderByRaw('rand()')->firstOrFail();
+
+                $follow = new Follower;
+                $follow->profile_id = $actor->id;
+                $follow->following_id = $target->id;
+                $follow->save();
+
+                FollowPipeline::dispatch($follow);
+            } catch (Exception $e) {
+                continue;
+            }
+        }
+    }
+}