نقل المشاركات إلى موضوع طويل يفشل

أدرك أنني ربما تجاوزت العدد المعقول من المشاركات المراد نقلها، والآن تفشل مع الرسالة:

حدث خطأ أثناء نقل المشاركات.

كنت أحاول نقل 19 مشاركة من موضوع يحتوي على 1500 مشاركة إلى موضوع يحتوي على 4500 مشاركة.

ومع ذلك، سيكون من الرائع لو كان هناك حل.

النقل إلى موضوع جديد يعمل بشكل جيد.

تلقى عامل Unicorn إشارة USR2 تشير إلى أنه على وشك انتهاء المهلة، ويقوم بتفريغ تتبع المكدس للخيط الرئيسي
config/unicorn.conf.rb:203:in `backtrace'
config/unicorn.conf.rb:203:in `block (2 levels) in reload'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-mini-profiler-3.3.1/lib/patches/db/pg.rb:110:in `exec'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-mini-profiler-3.3.1/lib/patches/db/pg.rb:110:in `async_exec'
(eval at /var/www/discourse/lib/method_profiler.rb:38):29:in `async_exec'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_sql-1.6.0/lib/mini_sql/postgres/connection.rb:217:in `run'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_sql-1.6.0/lib/mini_sql/active_record_postgres/connection.rb:38:in `block in run'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_sql-1.6.0/lib/mini_sql/active_record_postgres/connection.rb:34:in `block in with_lock'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2.1/lib/active_support/concurrency/null_lock.rb:9:in `synchronize'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_sql-1.6.0/lib/mini_sql/active_record_postgres/connection.rb:34:in `with_lock'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_sql-1.6.0/lib/mini_sql/active_record_postgres/connection.rb:38:in `run'
/var/www/discourse/lib/mini_sql_multisite_connection.rb:109:in `run'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_sql-1.6.0/lib/mini_sql/postgres/connection.rb:196:in `exec'
(eval at /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_sql-1.6.0/lib/mini_sql/builder.rb:62):2:in `exec'
/var/www/discourse/app/models/topic_user.rb:511:in `update_post_action_cache'
/var/www/discourse/app/models/post_mover.rb:634:in `update_statistics'
/var/www/discourse/app/models/post_mover.rb:116:in `move_posts_to'
/var/www/discourse/app/models/post_mover.rb:35:in `block in to_topic'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/transaction.rb:6...
activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:130:in `block in warn'
activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:231:in `block in dispatch'
activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:231:in `each'
activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:231:in `dispatch'
activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:130:in `warn'
/var/www/discourse/lib/signal_trap_logger.rb:40:in `public_send'
/var/www/discourse/lib/signal_trap_logger.rb:40:in `block (2 levels) in ensure_logging_thread_running'
(internal:kernel):187:in `loop'
/var/www/discourse/lib/signal_trap_logger.rb:37:in `block in ensure_logging_thread_running'

أنا على أحدث إصدار أساسي b6f62bcc05

هل لا يزال هناك خطة لنقل المنطق إلى sidekiq؟

3 إعجابات

هناك منشور حديث حول مشكلة مماثلة:

ربما حاول التحديث إذا لم تكن على آخر إصدار.

إعجابَين (2)

لقد لاحظت..

إعجابَين (2)

يمكننا أن نمنحك المزيد من الوقت ونقوم بتأجيل هذا إلى قائمة التأجيل بسهولة، مما يمنحك 90 ثانية مقابل 30 ثانية للعمل.

أنا قلق بعض الشيء من أن الأمر يستغرق وقتًا طويلاً هنا، ويبدو أن تحديث الإحصائيات هو شيء يجب أن نكون قادرين على القيام به لاحقًا بعد نقل المشاركات.

3 إعجابات

لقد قمت بالتحكم في الأمر الآن، ولكن نعم، من المحتمل أن تكون هناك مجموعة من التحسينات الأخرى التي يجب إجراؤها هنا:

3 إعجابات