Преглед на файлове

Merge pull request #5859 from pixelfed/staging

Staging
daniel преди 3 месеца
родител
ревизия
a009bc8fa0
променени са 4 файла, в които са добавени 49 реда и са изтрити 43 реда
  1. 2 0
      CHANGELOG.md
  2. 1 2
      app/Services/Account/AccountStatService.php
  3. 44 39
      app/Services/SnowflakeService.php
  4. 2 2
      config/snowflake.php

+ 2 - 0
CHANGELOG.md

@@ -51,6 +51,8 @@
 - Update ApiV1Controller, fix max_id pagination on home and public timeline feeds ([38e17a06e](https://github.com/pixelfed/pixelfed/commit/38e17a06e))
 - Update Post component, rewrite local post urls ([d2f2a1b1c](https://github.com/pixelfed/pixelfed/commit/d2f2a1b1c))
 - Update Profile component, rewrite local profile urls ([dfbccaa19](https://github.com/pixelfed/pixelfed/commit/dfbccaa19))
+- Update AccountPostCountStatUpdate, fix memory leak ([134eb6324](https://github.com/pixelfed/pixelfed/commit/134eb6324))
+- Update snowflake config, allow custom datacenter/worker ids ([806e210f1](https://github.com/pixelfed/pixelfed/commit/806e210f1))
 -  ([](https://github.com/pixelfed/pixelfed/commit/))
 
 ## [v0.12.4 (2024-11-08)](https://github.com/pixelfed/pixelfed/compare/v0.12.4...dev)

+ 1 - 2
app/Services/Account/AccountStatService.php

@@ -2,7 +2,6 @@
 
 namespace App\Services\Account;
 
-use Illuminate\Support\Facades\Cache;
 use Illuminate\Support\Facades\Redis;
 
 class AccountStatService
@@ -33,7 +32,7 @@ class AccountStatService
     {
         return Redis::zrangebyscore(
             self::REFRESH_CACHE_KEY,
-            '(' . $lastId,
+            '('.$lastId,
             '+inf',
             ['limit' => [0, $count]]
         );

+ 44 - 39
app/Services/SnowflakeService.php

@@ -2,45 +2,50 @@
 
 namespace App\Services;
 
-use Illuminate\Support\Carbon;
 use Cache;
+use Illuminate\Support\Carbon;
 
-class SnowflakeService {
-
-	public static function byDate(Carbon $ts = null)
-	{
-		if($ts instanceOf Carbon) {
-			$ts = now()->parse($ts)->timestamp;
-		} else {
-			return self::next();
-		}
-
-		return ((round($ts * 1000) - 1549756800000) << 22)
-		| (random_int(1,31) << 17)
-		| (random_int(1,31) << 12)
-		| 0;
-	}
-
-	public static function next()
-	{
-		$seq = Cache::get('snowflake:seq');
-
-		if(!$seq) {
-			Cache::put('snowflake:seq', 1);
-			$seq = 1;
-		} else {
-			Cache::increment('snowflake:seq');
-		}
-
-		if($seq >= 4095) {
-			Cache::put('snowflake:seq', 0);
-			$seq = 0;
-		}
-
-		return ((round(microtime(true) * 1000) - 1549756800000) << 22)
-		| (random_int(1,31) << 17)
-		| (random_int(1,31) << 12)
-		| $seq;
-	}
-
+class SnowflakeService
+{
+    public static function byDate(?Carbon $ts = null)
+    {
+        if ($ts instanceof Carbon) {
+            $ts = now()->parse($ts)->timestamp;
+        } else {
+            return self::next();
+        }
+
+        $datacenterId = config('snowflake.datacenter_id') ?? random_int(1, 31);
+        $workerId = config('snowflake.worker_id') ?? random_int(1, 31);
+
+        return ((round($ts * 1000) - 1549756800000) << 22)
+        | ($datacenterId << 17)
+        | ($workerId << 12)
+        | 0;
+    }
+
+    public static function next()
+    {
+        $seq = Cache::get('snowflake:seq');
+
+        if (! $seq) {
+            Cache::put('snowflake:seq', 1);
+            $seq = 1;
+        } else {
+            Cache::increment('snowflake:seq');
+        }
+
+        if ($seq >= 4095) {
+            Cache::put('snowflake:seq', 0);
+            $seq = 0;
+        }
+
+        $datacenterId = config('snowflake.datacenter_id') ?? random_int(1, 31);
+        $workerId = config('snowflake.worker_id') ?? random_int(1, 31);
+
+        return ((round(microtime(true) * 1000) - 1549756800000) << 22)
+        | ($datacenterId << 17)
+        | ($workerId << 12)
+        | $seq;
+    }
 }

+ 2 - 2
config/snowflake.php

@@ -1,6 +1,6 @@
 <?php
 return [
     'epoch' => 1549756800000,
-    'worker_id' => 1,
-    'datacenter_id' => 1,
+    'worker_id' => env('SNOWFLAKE_WORKER_ID', null),
+    'datacenter_id' => env('SNOWFLAKE_DATACENTER_ID', null),
 ];