summaryrefslogtreecommitdiff
path: root/app/workers
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2022-06-20 11:10:13 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2022-06-20 11:10:13 +0000
commit0ea3fcec397b69815975647f5e2aa5fe944a8486 (patch)
tree7979381b89d26011bcf9bdc989a40fcc2f1ed4ff /app/workers
parent72123183a20411a36d607d70b12d57c484394c8e (diff)
downloadgitlab-ce-0ea3fcec397b69815975647f5e2aa5fe944a8486.tar.gz
Add latest changes from gitlab-org/gitlab@15-1-stable-eev15.1.0-rc42
Diffstat (limited to 'app/workers')
-rw-r--r--app/workers/all_queues.yml1124
-rw-r--r--app/workers/background_migration/single_database_worker.rb13
-rw-r--r--app/workers/build_success_worker.rb4
-rw-r--r--app/workers/bulk_import_worker.rb2
-rw-r--r--app/workers/bulk_imports/pipeline_worker.rb112
-rw-r--r--app/workers/ci/archive_trace_worker.rb10
-rw-r--r--app/workers/ci/pipeline_artifacts/coverage_report_worker.rb2
-rw-r--r--app/workers/clusters/applications/activate_integration_worker.rb25
-rw-r--r--app/workers/clusters/applications/activate_service_worker.rb23
-rw-r--r--app/workers/clusters/applications/deactivate_integration_worker.rb39
-rw-r--r--app/workers/clusters/applications/deactivate_service_worker.rb30
-rw-r--r--app/workers/concerns/limited_capacity/job_tracker.rb2
-rw-r--r--app/workers/concerns/worker_attributes.rb26
-rw-r--r--app/workers/container_registry/migration/enqueuer_worker.rb57
-rw-r--r--app/workers/container_registry/migration/guard_worker.rb31
-rw-r--r--app/workers/database/batched_background_migration/ci_database_worker.rb6
-rw-r--r--app/workers/database/batched_background_migration/single_database_worker.rb24
-rw-r--r--app/workers/database/batched_background_migration_worker.rb4
-rw-r--r--app/workers/database/ci_namespace_mirrors_consistency_check_worker.rb4
-rw-r--r--app/workers/database/ci_project_mirrors_consistency_check_worker.rb4
-rw-r--r--app/workers/delete_container_repository_worker.rb37
-rw-r--r--app/workers/expire_job_cache_worker.rb22
-rw-r--r--app/workers/expire_pipeline_cache_worker.rb27
-rw-r--r--app/workers/gitlab_service_ping_worker.rb20
-rw-r--r--app/workers/integrations/execute_worker.rb27
-rw-r--r--app/workers/integrations/irker_worker.rb193
-rw-r--r--app/workers/irker_worker.rb192
-rw-r--r--app/workers/issue_placement_worker.rb71
-rw-r--r--app/workers/issue_rebalancing_worker.rb56
-rw-r--r--app/workers/loose_foreign_keys/cleanup_worker.rb2
-rw-r--r--app/workers/merge_requests/create_pipeline_worker.rb9
-rw-r--r--app/workers/merge_requests/update_head_pipeline_worker.rb2
-rw-r--r--app/workers/namespaceless_project_destroy_worker.rb42
-rw-r--r--app/workers/namespaces/process_sync_events_worker.rb4
-rw-r--r--app/workers/pages_transfer_worker.rb10
-rw-r--r--app/workers/pipeline_hooks_worker.rb1
-rw-r--r--app/workers/pipeline_notification_worker.rb1
-rw-r--r--app/workers/project_daily_statistics_worker.rb20
-rw-r--r--app/workers/project_service_worker.rb21
-rw-r--r--app/workers/projects/inactive_projects_deletion_cron_worker.rb67
-rw-r--r--app/workers/projects/process_sync_events_worker.rb4
-rw-r--r--app/workers/prometheus/create_default_alerts_worker.rb19
-rw-r--r--app/workers/repository_remove_remote_worker.rb35
-rw-r--r--app/workers/schedule_merge_request_cleanup_refs_worker.rb1
-rw-r--r--app/workers/terraform/states/destroy_worker.rb23
-rw-r--r--app/workers/update_merge_requests_worker.rb8
-rw-r--r--app/workers/web_hooks/destroy_worker.rb9
-rw-r--r--app/workers/web_hooks/log_destroy_worker.rb24
48 files changed, 1198 insertions, 1291 deletions
diff --git a/app/workers/all_queues.yml b/app/workers/all_queues.yml
index 8a525e455fd..ab75abff9ba 100644
--- a/app/workers/all_queues.yml
+++ b/app/workers/all_queues.yml
@@ -6,7 +6,7 @@
- :name: authorized_project_update:authorized_project_update_project_recalculate
:worker_name: AuthorizedProjectUpdate::ProjectRecalculateWorker
:feature_category: :authentication_and_authorization
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :high
:resource_boundary: :unknown
:weight: 1
@@ -15,7 +15,7 @@
- :name: authorized_project_update:authorized_project_update_project_recalculate_per_user
:worker_name: AuthorizedProjectUpdate::ProjectRecalculatePerUserWorker
:feature_category: :authentication_and_authorization
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :high
:resource_boundary: :unknown
:weight: 1
@@ -24,7 +24,7 @@
- :name: authorized_project_update:authorized_project_update_user_refresh_from_replica
:worker_name: AuthorizedProjectUpdate::UserRefreshFromReplicaWorker
:feature_category: :authentication_and_authorization
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -33,7 +33,7 @@
- :name: authorized_project_update:authorized_project_update_user_refresh_over_user_range
:worker_name: AuthorizedProjectUpdate::UserRefreshOverUserRangeWorker
:feature_category: :authentication_and_authorization
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -42,79 +42,79 @@
- :name: authorized_project_update:authorized_project_update_user_refresh_with_low_urgency
:worker_name: AuthorizedProjectUpdate::UserRefreshWithLowUrgencyWorker
:feature_category: :authentication_and_authorization
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
- :weight: 1
+ :weight: 2
:idempotent: true
:tags: []
- :name: auto_devops:auto_devops_disable
:worker_name: AutoDevops::DisableWorker
:feature_category: :auto_devops
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 2
- :idempotent:
+ :idempotent: false
:tags: []
- :name: auto_merge:auto_merge_process
:worker_name: AutoMergeProcessWorker
:feature_category: :continuous_delivery
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :cpu
:weight: 3
- :idempotent:
+ :idempotent: false
:tags: []
- :name: chaos:chaos_cpu_spin
:worker_name: Chaos::CpuSpinWorker
:feature_category: :not_owned
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 2
- :idempotent:
+ :idempotent: false
:tags: []
- :name: chaos:chaos_db_spin
:worker_name: Chaos::DbSpinWorker
:feature_category: :not_owned
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 2
- :idempotent:
+ :idempotent: false
:tags: []
- :name: chaos:chaos_kill
:worker_name: Chaos::KillWorker
:feature_category: :not_owned
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 2
- :idempotent:
+ :idempotent: false
:tags: []
- :name: chaos:chaos_leak_mem
:worker_name: Chaos::LeakMemWorker
:feature_category: :not_owned
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 2
- :idempotent:
+ :idempotent: false
:tags: []
- :name: chaos:chaos_sleep
:worker_name: Chaos::SleepWorker
:feature_category: :not_owned
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 2
- :idempotent:
+ :idempotent: false
:tags: []
- :name: cluster_agent:clusters_agents_delete_expired_events
:worker_name: Clusters::Agents::DeleteExpiredEventsWorker
:feature_category: :kubernetes_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -123,7 +123,7 @@
- :name: container_repository:cleanup_container_repository
:worker_name: CleanupContainerRepositoryWorker
:feature_category: :container_registry
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -132,7 +132,7 @@
- :name: container_repository:container_expiration_policies_cleanup_container_repository
:worker_name: ContainerExpirationPolicies::CleanupContainerRepositoryWorker
:feature_category: :container_registry
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -141,25 +141,25 @@
- :name: container_repository:delete_container_repository
:worker_name: DeleteContainerRepositoryWorker
:feature_category: :container_registry
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: cronjob:admin_email
:worker_name: AdminEmailWorker
:feature_category: :source_code_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: cronjob:analytics_usage_trends_count_job_trigger
:worker_name: Analytics::UsageTrends::CountJobTriggerWorker
:feature_category: :devops_reports
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -168,7 +168,7 @@
- :name: cronjob:authorized_project_update_periodic_recalculate
:worker_name: AuthorizedProjectUpdate::PeriodicRecalculateWorker
:feature_category: :source_code_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -177,7 +177,7 @@
- :name: cronjob:bulk_imports_stuck_import
:worker_name: BulkImports::StuckImportWorker
:feature_category: :importers
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -186,16 +186,16 @@
- :name: cronjob:ci_archive_traces_cron
:worker_name: Ci::ArchiveTracesCronWorker
:feature_category: :continuous_integration
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: cronjob:ci_delete_unit_tests
:worker_name: Ci::DeleteUnitTestsWorker
:feature_category: :code_testing
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -204,7 +204,7 @@
- :name: cronjob:ci_pipeline_artifacts_expire_artifacts
:worker_name: Ci::PipelineArtifacts::ExpireArtifactsWorker
:feature_category: :build_artifacts
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -213,16 +213,16 @@
- :name: cronjob:ci_platform_metrics_update_cron
:worker_name: CiPlatformMetricsUpdateCronWorker
:feature_category: :continuous_integration
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :cpu
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: cronjob:ci_schedule_delete_objects_cron
:worker_name: Ci::ScheduleDeleteObjectsCronWorker
:feature_category: :continuous_integration
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -231,7 +231,7 @@
- :name: cronjob:ci_stuck_builds_drop_running
:worker_name: Ci::StuckBuilds::DropRunningWorker
:feature_category: :continuous_integration
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -240,7 +240,7 @@
- :name: cronjob:ci_stuck_builds_drop_scheduled
:worker_name: Ci::StuckBuilds::DropScheduledWorker
:feature_category: :continuous_integration
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -249,11 +249,11 @@
- :name: cronjob:ci_update_locked_unknown_artifacts
:worker_name: Ci::UpdateLockedUnknownArtifactsWorker
:feature_category: :build_artifacts
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :throttled
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: cronjob:clusters_integrations_check_prometheus_health
:worker_name: Clusters::Integrations::CheckPrometheusHealthWorker
@@ -267,16 +267,16 @@
- :name: cronjob:container_expiration_policy
:worker_name: ContainerExpirationPolicyWorker
:feature_category: :container_registry
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: cronjob:container_registry_migration_enqueuer
:worker_name: ContainerRegistry::Migration::EnqueuerWorker
:feature_category: :container_registry
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -285,7 +285,7 @@
- :name: cronjob:container_registry_migration_guard
:worker_name: ContainerRegistry::Migration::GuardWorker
:feature_category: :container_registry
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -294,7 +294,7 @@
- :name: cronjob:container_registry_migration_observer
:worker_name: ContainerRegistry::Migration::ObserverWorker
:feature_category: :container_registry
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -303,7 +303,7 @@
- :name: cronjob:database_batched_background_migration
:worker_name: Database::BatchedBackgroundMigrationWorker
:feature_category: :database
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -312,7 +312,7 @@
- :name: cronjob:database_batched_background_migration_ci_database
:worker_name: Database::BatchedBackgroundMigration::CiDatabaseWorker
:feature_category: :database
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -320,8 +320,8 @@
:tags: []
- :name: cronjob:database_ci_namespace_mirrors_consistency_check
:worker_name: Database::CiNamespaceMirrorsConsistencyCheckWorker
- :feature_category: :sharding
- :has_external_dependencies:
+ :feature_category: :pods
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -329,8 +329,8 @@
:tags: []
- :name: cronjob:database_ci_project_mirrors_consistency_check
:worker_name: Database::CiProjectMirrorsConsistencyCheckWorker
- :feature_category: :sharding
- :has_external_dependencies:
+ :feature_category: :pods
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -339,7 +339,7 @@
- :name: cronjob:database_drop_detached_partitions
:worker_name: Database::DropDetachedPartitionsWorker
:feature_category: :database
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -348,7 +348,7 @@
- :name: cronjob:database_partition_management
:worker_name: Database::PartitionManagementWorker
:feature_category: :database
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -357,7 +357,7 @@
- :name: cronjob:dependency_proxy_cleanup_dependency_proxy
:worker_name: DependencyProxy::CleanupDependencyProxyWorker
:feature_category: :dependency_proxy
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -366,16 +366,16 @@
- :name: cronjob:dependency_proxy_image_ttl_group_policy
:worker_name: DependencyProxy::ImageTtlGroupPolicyWorker
:feature_category: :dependency_proxy
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: cronjob:environments_auto_delete_cron
:worker_name: Environments::AutoDeleteCronWorker
:feature_category: :continuous_delivery
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -384,61 +384,61 @@
- :name: cronjob:environments_auto_stop_cron
:worker_name: Environments::AutoStopCronWorker
:feature_category: :continuous_delivery
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :cpu
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: cronjob:expire_build_artifacts
:worker_name: ExpireBuildArtifactsWorker
:feature_category: :build_artifacts
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: cronjob:gitlab_service_ping
:worker_name: GitlabServicePingWorker
:feature_category: :service_ping
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :cpu
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: cronjob:import_export_project_cleanup
:worker_name: ImportExportProjectCleanupWorker
:feature_category: :importers
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: cronjob:import_stuck_project_import_jobs
:worker_name: Gitlab::Import::StuckProjectImportJobsWorker
:feature_category: :importers
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :cpu
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: cronjob:issue_due_scheduler
:worker_name: IssueDueSchedulerWorker
:feature_category: :team_planning
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: cronjob:issues_reschedule_stuck_issue_rebalances
:worker_name: Issues::RescheduleStuckIssueRebalancesWorker
:feature_category: :team_planning
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -447,16 +447,16 @@
- :name: cronjob:jira_import_stuck_jira_import_jobs
:worker_name: Gitlab::JiraImport::StuckJiraImportJobsWorker
:feature_category: :importers
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :cpu
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: cronjob:loose_foreign_keys_cleanup
:worker_name: LooseForeignKeys::CleanupWorker
- :feature_category: :sharding
- :has_external_dependencies:
+ :feature_category: :pods
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -465,16 +465,16 @@
- :name: cronjob:member_invitation_reminder_emails
:worker_name: MemberInvitationReminderEmailsWorker
:feature_category: :subgroups
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: cronjob:metrics_dashboard_schedule_annotations_prune
:worker_name: Metrics::Dashboard::ScheduleAnnotationsPruneWorker
:feature_category: :metrics
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -483,25 +483,25 @@
- :name: cronjob:namespaces_in_product_marketing_emails
:worker_name: Namespaces::InProductMarketingEmailsWorker
:feature_category: :experimentation_activation
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: cronjob:namespaces_prune_aggregation_schedules
:worker_name: Namespaces::PruneAggregationSchedulesWorker
:feature_category: :source_code_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :cpu
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: cronjob:packages_cleanup_package_registry
:worker_name: Packages::CleanupPackageRegistryWorker
:feature_category: :package_registry
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -510,7 +510,7 @@
- :name: cronjob:packages_composer_cache_cleanup
:worker_name: Packages::Composer::CacheCleanupWorker
:feature_category: :package_registry
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -519,34 +519,34 @@
- :name: cronjob:pages_domain_removal_cron
:worker_name: PagesDomainRemovalCronWorker
:feature_category: :pages
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :cpu
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: cronjob:pages_domain_ssl_renewal_cron
:worker_name: PagesDomainSslRenewalCronWorker
:feature_category: :pages
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :cpu
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: cronjob:pages_domain_verification_cron
:worker_name: PagesDomainVerificationCronWorker
:feature_category: :pages
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :cpu
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: cronjob:partition_creation
:worker_name: PartitionCreationWorker
:feature_category: :database
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -555,34 +555,34 @@
- :name: cronjob:personal_access_tokens_expired_notification
:worker_name: PersonalAccessTokens::ExpiredNotificationWorker
:feature_category: :authentication_and_authorization
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: cronjob:personal_access_tokens_expiring
:worker_name: PersonalAccessTokens::ExpiringWorker
:feature_category: :authentication_and_authorization
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: cronjob:pipeline_schedule
:worker_name: PipelineScheduleWorker
:feature_category: :continuous_integration
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :cpu
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: cronjob:projects_inactive_projects_deletion_cron
:worker_name: Projects::InactiveProjectsDeletionCronWorker
:feature_category: :compliance_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -591,7 +591,7 @@
- :name: cronjob:projects_schedule_refresh_build_artifacts_size_statistics
:worker_name: Projects::ScheduleRefreshBuildArtifactsSizeStatisticsWorker
:feature_category: :build_artifacts
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -600,43 +600,43 @@
- :name: cronjob:prune_old_events
:worker_name: PruneOldEventsWorker
:feature_category: :users
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: cronjob:releases_manage_evidence
:worker_name: Releases::ManageEvidenceWorker
:feature_category: :release_evidence
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: cronjob:remove_expired_group_links
:worker_name: RemoveExpiredGroupLinksWorker
:feature_category: :authentication_and_authorization
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: cronjob:remove_expired_members
:worker_name: RemoveExpiredMembersWorker
:feature_category: :authentication_and_authorization
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :cpu
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: cronjob:remove_unaccepted_member_invites
:worker_name: RemoveUnacceptedMemberInvitesWorker
:feature_category: :authentication_and_authorization
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -645,7 +645,7 @@
- :name: cronjob:remove_unreferenced_lfs_objects
:worker_name: RemoveUnreferencedLfsObjectsWorker
:feature_category: :git_lfs
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -654,25 +654,25 @@
- :name: cronjob:repository_archive_cache
:worker_name: RepositoryArchiveCacheWorker
:feature_category: :source_code_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: cronjob:repository_check_dispatch
:worker_name: RepositoryCheck::DispatchWorker
:feature_category: :source_code_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: cronjob:schedule_merge_request_cleanup_refs
:worker_name: ScheduleMergeRequestCleanupRefsWorker
:feature_category: :code_review
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -681,16 +681,16 @@
- :name: cronjob:schedule_migrate_external_diffs
:worker_name: ScheduleMigrateExternalDiffsWorker
:feature_category: :code_review
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: cronjob:ssh_keys_expired_notification
:worker_name: SshKeys::ExpiredNotificationWorker
:feature_category: :compliance_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -699,7 +699,7 @@
- :name: cronjob:ssh_keys_expiring_soon_notification
:worker_name: SshKeys::ExpiringSoonNotificationWorker
:feature_category: :compliance_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -708,43 +708,43 @@
- :name: cronjob:stuck_ci_jobs
:worker_name: StuckCiJobsWorker
:feature_category: :continuous_integration
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: cronjob:stuck_export_jobs
:worker_name: StuckExportJobsWorker
:feature_category: :importers
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :cpu
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: cronjob:stuck_merge_jobs
:worker_name: StuckMergeJobsWorker
:feature_category: :code_review
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: cronjob:trending_projects
:worker_name: TrendingProjectsWorker
:feature_category: :source_code_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: cronjob:update_container_registry_info
:worker_name: UpdateContainerRegistryInfoWorker
:feature_category: :container_registry
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -753,7 +753,7 @@
- :name: cronjob:user_status_cleanup_batch
:worker_name: UserStatusCleanup::BatchWorker
:feature_category: :users
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -762,20 +762,20 @@
- :name: cronjob:users_create_statistics
:worker_name: Users::CreateStatisticsWorker
:feature_category: :users
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: cronjob:users_deactivate_dormant_users
:worker_name: Users::DeactivateDormantUsersWorker
:feature_category: :utilization
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: cronjob:x509_issuer_crl_check
:worker_name: X509IssuerCrlCheckWorker
@@ -789,7 +789,7 @@
- :name: dependency_proxy:purge_dependency_proxy_cache
:worker_name: PurgeDependencyProxyCacheWorker
:feature_category: :dependency_proxy
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -798,7 +798,7 @@
- :name: dependency_proxy_blob:dependency_proxy_cleanup_blob
:worker_name: DependencyProxy::CleanupBlobWorker
:feature_category: :dependency_proxy
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -807,7 +807,7 @@
- :name: dependency_proxy_manifest:dependency_proxy_cleanup_manifest
:worker_name: DependencyProxy::CleanupManifestWorker
:feature_category: :dependency_proxy
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -816,7 +816,7 @@
- :name: deployment:deployments_archive_in_project
:worker_name: Deployments::ArchiveInProjectWorker
:feature_category: :continuous_delivery
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 3
@@ -825,25 +825,25 @@
- :name: deployment:deployments_drop_older_deployments
:worker_name: Deployments::DropOlderDeploymentsWorker
:feature_category: :continuous_delivery
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 3
- :idempotent:
+ :idempotent: false
:tags: []
- :name: deployment:deployments_hooks
:worker_name: Deployments::HooksWorker
:feature_category: :continuous_delivery
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 3
- :idempotent:
+ :idempotent: false
:tags: []
- :name: deployment:deployments_link_merge_request
:worker_name: Deployments::LinkMergeRequestWorker
:feature_category: :continuous_delivery
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :cpu
:weight: 3
@@ -852,7 +852,7 @@
- :name: deployment:deployments_update_environment
:worker_name: Deployments::UpdateEnvironmentWorker
:feature_category: :continuous_delivery
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :cpu
:weight: 3
@@ -865,7 +865,7 @@
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: gcp_cluster:cluster_install_app
:worker_name: ClusterInstallAppWorker
@@ -874,7 +874,7 @@
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: gcp_cluster:cluster_patch_app
:worker_name: ClusterPatchAppWorker
@@ -883,7 +883,7 @@
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: gcp_cluster:cluster_provision
:worker_name: ClusterProvisionWorker
@@ -892,16 +892,16 @@
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: gcp_cluster:cluster_update_app
:worker_name: ClusterUpdateAppWorker
:feature_category: :kubernetes_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: gcp_cluster:cluster_upgrade_app
:worker_name: ClusterUpgradeAppWorker
@@ -910,7 +910,7 @@
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: gcp_cluster:cluster_wait_for_app_installation
:worker_name: ClusterWaitForAppInstallationWorker
@@ -919,16 +919,16 @@
:urgency: :low
:resource_boundary: :cpu
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: gcp_cluster:cluster_wait_for_app_update
:worker_name: ClusterWaitForAppUpdateWorker
:feature_category: :kubernetes_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: gcp_cluster:cluster_wait_for_ingress_ip_address
:worker_name: ClusterWaitForIngressIpAddressWorker
@@ -937,25 +937,43 @@
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
+ :tags: []
+- :name: gcp_cluster:clusters_applications_activate_integration
+ :worker_name: Clusters::Applications::ActivateIntegrationWorker
+ :feature_category: :kubernetes_management
+ :has_external_dependencies: false
+ :urgency: :low
+ :resource_boundary: :unknown
+ :weight: 1
+ :idempotent: false
:tags: []
- :name: gcp_cluster:clusters_applications_activate_service
:worker_name: Clusters::Applications::ActivateServiceWorker
:feature_category: :kubernetes_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
+ :tags: []
+- :name: gcp_cluster:clusters_applications_deactivate_integration
+ :worker_name: Clusters::Applications::DeactivateIntegrationWorker
+ :feature_category: :kubernetes_management
+ :has_external_dependencies: false
+ :urgency: :low
+ :resource_boundary: :unknown
+ :weight: 1
+ :idempotent: false
:tags: []
- :name: gcp_cluster:clusters_applications_deactivate_service
:worker_name: Clusters::Applications::DeactivateServiceWorker
:feature_category: :kubernetes_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: gcp_cluster:clusters_applications_uninstall
:worker_name: Clusters::Applications::UninstallWorker
@@ -964,7 +982,7 @@
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: gcp_cluster:clusters_applications_wait_for_uninstall_app
:worker_name: Clusters::Applications::WaitForUninstallAppWorker
@@ -973,7 +991,7 @@
:urgency: :low
:resource_boundary: :cpu
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: gcp_cluster:clusters_cleanup_project_namespace
:worker_name: Clusters::Cleanup::ProjectNamespaceWorker
@@ -982,7 +1000,7 @@
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: gcp_cluster:clusters_cleanup_service_account
:worker_name: Clusters::Cleanup::ServiceAccountWorker
@@ -991,7 +1009,7 @@
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: gcp_cluster:wait_for_cluster_creation
:worker_name: WaitForClusterCreationWorker
@@ -1000,7 +1018,7 @@
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: github_importer:github_import_import_diff_note
:worker_name: Gitlab::GithubImport::ImportDiffNoteWorker
@@ -1009,7 +1027,7 @@
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: github_importer:github_import_import_issue
:worker_name: Gitlab::GithubImport::ImportIssueWorker
@@ -1018,7 +1036,7 @@
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: github_importer:github_import_import_lfs_object
:worker_name: Gitlab::GithubImport::ImportLfsObjectWorker
@@ -1027,7 +1045,7 @@
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: github_importer:github_import_import_note
:worker_name: Gitlab::GithubImport::ImportNoteWorker
@@ -1036,7 +1054,7 @@
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: github_importer:github_import_import_pull_request
:worker_name: Gitlab::GithubImport::ImportPullRequestWorker
@@ -1045,7 +1063,7 @@
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: github_importer:github_import_import_pull_request_merged_by
:worker_name: Gitlab::GithubImport::ImportPullRequestMergedByWorker
@@ -1054,7 +1072,7 @@
:urgency: :low
:resource_boundary: :cpu
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: github_importer:github_import_import_pull_request_review
:worker_name: Gitlab::GithubImport::ImportPullRequestReviewWorker
@@ -1063,156 +1081,156 @@
:urgency: :low
:resource_boundary: :cpu
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: github_importer:github_import_refresh_import_jid
:worker_name: Gitlab::GithubImport::RefreshImportJidWorker
:feature_category: :importers
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: github_importer:github_import_stage_finish_import
:worker_name: Gitlab::GithubImport::Stage::FinishImportWorker
:feature_category: :importers
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: github_importer:github_import_stage_import_base_data
:worker_name: Gitlab::GithubImport::Stage::ImportBaseDataWorker
:feature_category: :importers
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: github_importer:github_import_stage_import_issues_and_diff_notes
:worker_name: Gitlab::GithubImport::Stage::ImportIssuesAndDiffNotesWorker
:feature_category: :importers
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: github_importer:github_import_stage_import_lfs_objects
:worker_name: Gitlab::GithubImport::Stage::ImportLfsObjectsWorker
:feature_category: :importers
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: github_importer:github_import_stage_import_notes
:worker_name: Gitlab::GithubImport::Stage::ImportNotesWorker
:feature_category: :importers
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: github_importer:github_import_stage_import_pull_requests
:worker_name: Gitlab::GithubImport::Stage::ImportPullRequestsWorker
:feature_category: :importers
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: github_importer:github_import_stage_import_pull_requests_merged_by
:worker_name: Gitlab::GithubImport::Stage::ImportPullRequestsMergedByWorker
:feature_category: :importers
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: github_importer:github_import_stage_import_pull_requests_reviews
:worker_name: Gitlab::GithubImport::Stage::ImportPullRequestsReviewsWorker
:feature_category: :importers
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: github_importer:github_import_stage_import_repository
:worker_name: Gitlab::GithubImport::Stage::ImportRepositoryWorker
:feature_category: :importers
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: hashed_storage:hashed_storage_migrator
:worker_name: HashedStorage::MigratorWorker
:feature_category: :source_code_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: hashed_storage:hashed_storage_project_migrate
:worker_name: HashedStorage::ProjectMigrateWorker
:feature_category: :source_code_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: hashed_storage:hashed_storage_project_rollback
:worker_name: HashedStorage::ProjectRollbackWorker
:feature_category: :source_code_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: hashed_storage:hashed_storage_rollbacker
:worker_name: HashedStorage::RollbackerWorker
:feature_category: :source_code_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: incident_management:incident_management_add_severity_system_note
:worker_name: IncidentManagement::AddSeveritySystemNoteWorker
:feature_category: :incident_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :cpu
:weight: 2
- :idempotent:
+ :idempotent: false
:tags: []
- :name: incident_management:incident_management_pager_duty_process_incident
:worker_name: IncidentManagement::PagerDuty::ProcessIncidentWorker
:feature_category: :incident_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 2
- :idempotent:
+ :idempotent: false
:tags: []
- :name: incident_management:incident_management_process_alert_worker_v2
:worker_name: IncidentManagement::ProcessAlertWorkerV2
:feature_category: :incident_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :cpu
:weight: 2
@@ -1225,7 +1243,7 @@
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: jira_connect:jira_connect_retry_request
:worker_name: JiraConnect::RetryRequestWorker
@@ -1234,7 +1252,7 @@
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: jira_connect:jira_connect_sync_branch
:worker_name: JiraConnect::SyncBranchWorker
@@ -1243,7 +1261,7 @@
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: jira_connect:jira_connect_sync_builds
:worker_name: JiraConnect::SyncBuildsWorker
@@ -1252,7 +1270,7 @@
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: jira_connect:jira_connect_sync_deployments
:worker_name: JiraConnect::SyncDeploymentsWorker
@@ -1261,7 +1279,7 @@
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: jira_connect:jira_connect_sync_feature_flags
:worker_name: JiraConnect::SyncFeatureFlagsWorker
@@ -1270,7 +1288,7 @@
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: jira_connect:jira_connect_sync_merge_request
:worker_name: JiraConnect::SyncMergeRequestWorker
@@ -1279,7 +1297,7 @@
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: jira_connect:jira_connect_sync_project
:worker_name: JiraConnect::SyncProjectWorker
@@ -1288,156 +1306,156 @@
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: jira_importer:jira_import_advance_stage
:worker_name: Gitlab::JiraImport::AdvanceStageWorker
:feature_category: :importers
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: jira_importer:jira_import_import_issue
:worker_name: Gitlab::JiraImport::ImportIssueWorker
:feature_category: :importers
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: jira_importer:jira_import_stage_finish_import
:worker_name: Gitlab::JiraImport::Stage::FinishImportWorker
:feature_category: :importers
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: jira_importer:jira_import_stage_import_attachments
:worker_name: Gitlab::JiraImport::Stage::ImportAttachmentsWorker
:feature_category: :importers
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: jira_importer:jira_import_stage_import_issues
:worker_name: Gitlab::JiraImport::Stage::ImportIssuesWorker
:feature_category: :importers
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: jira_importer:jira_import_stage_import_labels
:worker_name: Gitlab::JiraImport::Stage::ImportLabelsWorker
:feature_category: :importers
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: jira_importer:jira_import_stage_import_notes
:worker_name: Gitlab::JiraImport::Stage::ImportNotesWorker
:feature_category: :importers
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: jira_importer:jira_import_stage_start_import
:worker_name: Gitlab::JiraImport::Stage::StartImportWorker
:feature_category: :importers
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: mail_scheduler:mail_scheduler_issue_due
:worker_name: MailScheduler::IssueDueWorker
:feature_category: :team_planning
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 2
- :idempotent:
+ :idempotent: false
:tags: []
- :name: mail_scheduler:mail_scheduler_notification_service
:worker_name: MailScheduler::NotificationServiceWorker
:feature_category: :team_planning
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :cpu
:weight: 2
- :idempotent:
+ :idempotent: false
:tags: []
- :name: object_pool:object_pool_create
:worker_name: ObjectPool::CreateWorker
:feature_category: :gitaly
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: object_pool:object_pool_destroy
:worker_name: ObjectPool::DestroyWorker
:feature_category: :gitaly
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: object_pool:object_pool_join
:worker_name: ObjectPool::JoinWorker
:feature_category: :gitaly
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :cpu
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: object_pool:object_pool_schedule_join
:worker_name: ObjectPool::ScheduleJoinWorker
:feature_category: :gitaly
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: object_storage:object_storage_background_move
:worker_name: ObjectStorage::BackgroundMoveWorker
:feature_category: :not_owned
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: object_storage:object_storage_migrate_uploads
:worker_name: ObjectStorage::MigrateUploadsWorker
:feature_category: :not_owned
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: package_cleanup:packages_cleanup_package_file
:worker_name: Packages::CleanupPackageFileWorker
:feature_category: :package_registry
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -1446,7 +1464,7 @@
- :name: package_cleanup:packages_mark_package_files_for_destruction
:worker_name: Packages::MarkPackageFilesForDestructionWorker
:feature_category: :package_registry
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -1455,7 +1473,7 @@
- :name: package_repositories:packages_debian_generate_distribution
:worker_name: Packages::Debian::GenerateDistributionWorker
:feature_category: :package_registry
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -1464,7 +1482,7 @@
- :name: package_repositories:packages_debian_process_changes
:worker_name: Packages::Debian::ProcessChangesWorker
:feature_category: :package_registry
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -1473,7 +1491,7 @@
- :name: package_repositories:packages_go_sync_packages
:worker_name: Packages::Go::SyncPackagesWorker
:feature_category: :package_registry
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -1482,7 +1500,7 @@
- :name: package_repositories:packages_helm_extraction
:worker_name: Packages::Helm::ExtractionWorker
:feature_category: :package_registry
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -1491,7 +1509,7 @@
- :name: package_repositories:packages_maven_metadata_sync
:worker_name: Packages::Maven::Metadata::SyncWorker
:feature_category: :package_registry
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -1500,43 +1518,43 @@
- :name: package_repositories:packages_nuget_extraction
:worker_name: Packages::Nuget::ExtractionWorker
:feature_category: :package_registry
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: package_repositories:packages_rubygems_extraction
:worker_name: Packages::Rubygems::ExtractionWorker
:feature_category: :package_registry
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: pipeline_background:archive_trace
:worker_name: ArchiveTraceWorker
:feature_category: :continuous_integration
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: pipeline_background:ci_archive_trace
:worker_name: Ci::ArchiveTraceWorker
:feature_category: :continuous_integration
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: pipeline_background:ci_build_trace_chunk_flush
:worker_name: Ci::BuildTraceChunkFlushWorker
:feature_category: :continuous_integration
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -1545,7 +1563,7 @@
- :name: pipeline_background:ci_daily_build_group_report_results
:worker_name: Ci::DailyBuildGroupReportResultsWorker
:feature_category: :code_testing
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -1554,7 +1572,7 @@
- :name: pipeline_background:ci_pending_builds_update_group
:worker_name: Ci::PendingBuilds::UpdateGroupWorker
:feature_category: :continuous_integration
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -1563,7 +1581,7 @@
- :name: pipeline_background:ci_pending_builds_update_project
:worker_name: Ci::PendingBuilds::UpdateProjectWorker
:feature_category: :continuous_integration
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -1572,7 +1590,7 @@
- :name: pipeline_background:ci_pipeline_artifacts_coverage_report
:worker_name: Ci::PipelineArtifacts::CoverageReportWorker
:feature_category: :code_testing
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -1581,7 +1599,7 @@
- :name: pipeline_background:ci_pipeline_artifacts_create_quality_report
:worker_name: Ci::PipelineArtifacts::CreateQualityReportWorker
:feature_category: :code_quality
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -1590,7 +1608,7 @@
- :name: pipeline_background:ci_pipeline_success_unlock_artifacts
:worker_name: Ci::PipelineSuccessUnlockArtifactsWorker
:feature_category: :continuous_integration
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -1599,7 +1617,7 @@
- :name: pipeline_background:ci_ref_delete_unlock_artifacts
:worker_name: Ci::RefDeleteUnlockArtifactsWorker
:feature_category: :continuous_integration
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -1608,52 +1626,34 @@
- :name: pipeline_background:ci_test_failure_history
:worker_name: Ci::TestFailureHistoryWorker
:feature_category: :continuous_integration
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
:idempotent: true
:tags: []
-- :name: pipeline_cache:expire_job_cache
- :worker_name: ExpireJobCacheWorker
- :feature_category: :continuous_integration
- :has_external_dependencies:
- :urgency: :high
- :resource_boundary: :unknown
- :weight: 3
- :idempotent: true
- :tags: []
-- :name: pipeline_cache:expire_pipeline_cache
- :worker_name: ExpirePipelineCacheWorker
- :feature_category: :continuous_integration
- :has_external_dependencies:
- :urgency: :high
- :resource_boundary: :cpu
- :weight: 3
- :idempotent:
- :tags: []
- :name: pipeline_creation:ci_external_pull_requests_create_pipeline
:worker_name: Ci::ExternalPullRequests::CreatePipelineWorker
:feature_category: :continuous_integration
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :high
:resource_boundary: :cpu
:weight: 4
- :idempotent:
+ :idempotent: false
:tags: []
- :name: pipeline_creation:create_pipeline
:worker_name: CreatePipelineWorker
:feature_category: :continuous_integration
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :high
:resource_boundary: :cpu
:weight: 4
- :idempotent:
+ :idempotent: false
:tags: []
- :name: pipeline_creation:merge_requests_create_pipeline
:worker_name: MergeRequests::CreatePipelineWorker
:feature_category: :continuous_integration
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :high
:resource_boundary: :cpu
:weight: 4
@@ -1662,34 +1662,34 @@
- :name: pipeline_creation:run_pipeline_schedule
:worker_name: RunPipelineScheduleWorker
:feature_category: :continuous_integration
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 4
- :idempotent:
+ :idempotent: false
:tags: []
- :name: pipeline_default:ci_create_cross_project_pipeline
:worker_name: Ci::CreateCrossProjectPipelineWorker
:feature_category: :continuous_integration
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :cpu
:weight: 3
- :idempotent:
+ :idempotent: false
:tags: []
- :name: pipeline_default:ci_create_downstream_pipeline
:worker_name: Ci::CreateDownstreamPipelineWorker
:feature_category: :continuous_integration
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :high
:resource_boundary: :cpu
:weight: 3
- :idempotent:
+ :idempotent: false
:tags: []
- :name: pipeline_default:ci_drop_pipeline
:worker_name: Ci::DropPipelineWorker
:feature_category: :continuous_integration
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :high
:resource_boundary: :unknown
:weight: 3
@@ -1698,7 +1698,7 @@
- :name: pipeline_default:ci_merge_requests_add_todo_when_build_fails
:worker_name: Ci::MergeRequests::AddTodoWhenBuildFailsWorker
:feature_category: :continuous_integration
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 3
@@ -1707,115 +1707,115 @@
- :name: pipeline_default:ci_pipeline_bridge_status
:worker_name: Ci::PipelineBridgeStatusWorker
:feature_category: :continuous_integration
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :high
:resource_boundary: :cpu
:weight: 3
- :idempotent:
+ :idempotent: false
:tags: []
- :name: pipeline_default:ci_retry_pipeline
:worker_name: Ci::RetryPipelineWorker
:feature_category: :continuous_integration
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :high
:resource_boundary: :cpu
:weight: 3
- :idempotent:
+ :idempotent: false
:tags: []
- :name: pipeline_default:pipeline_metrics
:worker_name: PipelineMetricsWorker
:feature_category: :continuous_integration
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :high
:resource_boundary: :unknown
:weight: 3
- :idempotent:
+ :idempotent: false
:tags: []
- :name: pipeline_default:pipeline_notification
:worker_name: PipelineNotificationWorker
:feature_category: :continuous_integration
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :high
:resource_boundary: :cpu
:weight: 3
- :idempotent:
+ :idempotent: false
:tags: []
- :name: pipeline_hooks:build_hooks
:worker_name: BuildHooksWorker
:feature_category: :continuous_integration
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :high
:resource_boundary: :unknown
:weight: 2
- :idempotent:
+ :idempotent: false
:tags: []
- :name: pipeline_hooks:pipeline_hooks
:worker_name: PipelineHooksWorker
:feature_category: :continuous_integration
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :cpu
:weight: 2
- :idempotent:
+ :idempotent: false
:tags: []
- :name: pipeline_processing:build_finished
:worker_name: BuildFinishedWorker
:feature_category: :continuous_integration
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :high
:resource_boundary: :cpu
:weight: 5
- :idempotent:
+ :idempotent: false
:tags: []
- :name: pipeline_processing:build_queue
:worker_name: BuildQueueWorker
:feature_category: :continuous_integration
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :high
:resource_boundary: :cpu
:weight: 5
- :idempotent:
+ :idempotent: false
:tags: []
- :name: pipeline_processing:build_success
:worker_name: BuildSuccessWorker
:feature_category: :continuous_integration
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :high
:resource_boundary: :unknown
:weight: 5
- :idempotent:
+ :idempotent: false
:tags: []
- :name: pipeline_processing:ci_build_finished
:worker_name: Ci::BuildFinishedWorker
:feature_category: :continuous_integration
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :high
:resource_boundary: :cpu
:weight: 5
- :idempotent:
+ :idempotent: false
:tags: []
- :name: pipeline_processing:ci_build_prepare
:worker_name: Ci::BuildPrepareWorker
:feature_category: :continuous_integration
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 5
- :idempotent:
+ :idempotent: false
:tags: []
- :name: pipeline_processing:ci_build_schedule
:worker_name: Ci::BuildScheduleWorker
:feature_category: :continuous_integration
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :cpu
:weight: 5
- :idempotent:
+ :idempotent: false
:tags: []
- :name: pipeline_processing:ci_initial_pipeline_process
:worker_name: Ci::InitialPipelineProcessWorker
:feature_category: :continuous_integration
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :high
:resource_boundary: :unknown
:weight: 5
@@ -1824,7 +1824,7 @@
- :name: pipeline_processing:ci_resource_groups_assign_resource_from_resource_group
:worker_name: Ci::ResourceGroups::AssignResourceFromResourceGroupWorker
:feature_category: :continuous_delivery
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 5
@@ -1833,7 +1833,7 @@
- :name: pipeline_processing:pipeline_process
:worker_name: PipelineProcessWorker
:feature_category: :continuous_integration
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :high
:resource_boundary: :unknown
:weight: 5
@@ -1842,7 +1842,7 @@
- :name: pipeline_processing:stage_update
:worker_name: StageUpdateWorker
:feature_category: :continuous_integration
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :high
:resource_boundary: :unknown
:weight: 5
@@ -1851,7 +1851,7 @@
- :name: pipeline_processing:update_head_pipeline_for_merge_request
:worker_name: UpdateHeadPipelineForMergeRequestWorker
:feature_category: :continuous_integration
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :high
:resource_boundary: :cpu
:weight: 5
@@ -1860,43 +1860,52 @@
- :name: repository_check:repository_check_batch
:worker_name: RepositoryCheck::BatchWorker
:feature_category: :source_code_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: repository_check:repository_check_clear
:worker_name: RepositoryCheck::ClearWorker
:feature_category: :source_code_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: repository_check:repository_check_single_repository
:worker_name: RepositoryCheck::SingleRepositoryWorker
:feature_category: :source_code_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
+ :tags: []
+- :name: terraform:terraform_states_destroy
+ :worker_name: Terraform::States::DestroyWorker
+ :feature_category: :infrastructure_as_code
+ :has_external_dependencies: false
+ :urgency: :low
+ :resource_boundary: :unknown
+ :weight: 1
+ :idempotent: true
:tags: []
- :name: todos_destroyer:todos_destroyer_confidential_issue
:worker_name: TodosDestroyer::ConfidentialIssueWorker
:feature_category: :team_planning
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: todos_destroyer:todos_destroyer_destroyed_designs
:worker_name: TodosDestroyer::DestroyedDesignsWorker
:feature_category: :team_planning
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -1905,7 +1914,7 @@
- :name: todos_destroyer:todos_destroyer_destroyed_issuable
:worker_name: TodosDestroyer::DestroyedIssuableWorker
:feature_category: :team_planning
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -1914,43 +1923,43 @@
- :name: todos_destroyer:todos_destroyer_entity_leave
:worker_name: TodosDestroyer::EntityLeaveWorker
:feature_category: :team_planning
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: todos_destroyer:todos_destroyer_group_private
:worker_name: TodosDestroyer::GroupPrivateWorker
:feature_category: :team_planning
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: todos_destroyer:todos_destroyer_private_features
:worker_name: TodosDestroyer::PrivateFeaturesWorker
:feature_category: :team_planning
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: todos_destroyer:todos_destroyer_project_private
:worker_name: TodosDestroyer::ProjectPrivateWorker
:feature_category: :team_planning
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: unassign_issuables:members_destroyer_unassign_issuables
:worker_name: MembersDestroyer::UnassignIssuablesWorker
:feature_category: :authentication_and_authorization
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -1959,7 +1968,7 @@
- :name: update_namespace_statistics:namespaces_root_statistics
:worker_name: Namespaces::RootStatisticsWorker
:feature_category: :source_code_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -1968,7 +1977,7 @@
- :name: update_namespace_statistics:namespaces_schedule_aggregation
:worker_name: Namespaces::ScheduleAggregationWorker
:feature_category: :source_code_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -1977,7 +1986,7 @@
- :name: analytics_usage_trends_counter_job
:worker_name: Analytics::UsageTrends::CounterJobWorker
:feature_category: :devops_reports
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -1986,7 +1995,7 @@
- :name: approve_blocked_pending_approval_users
:worker_name: ApproveBlockedPendingApprovalUsersWorker
:feature_category: :users
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -1995,7 +2004,7 @@
- :name: authorized_keys
:worker_name: AuthorizedKeysWorker
:feature_category: :source_code_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :high
:resource_boundary: :unknown
:weight: 2
@@ -2004,7 +2013,7 @@
- :name: authorized_projects
:worker_name: AuthorizedProjectsWorker
:feature_category: :authentication_and_authorization
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :high
:resource_boundary: :unknown
:weight: 2
@@ -2013,29 +2022,29 @@
- :name: background_migration
:worker_name: BackgroundMigrationWorker
:feature_category: :database
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :throttled
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: background_migration_ci_database
:worker_name: BackgroundMigration::CiDatabaseWorker
:feature_category: :database
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :throttled
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: bulk_import
:worker_name: BulkImportWorker
:feature_category: :importers
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: bulk_imports_entity
:worker_name: BulkImports::EntityWorker
@@ -2062,12 +2071,12 @@
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: bulk_imports_relation_export
:worker_name: BulkImports::RelationExportWorker
:feature_category: :importers
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -2080,12 +2089,12 @@
:urgency: :low
:resource_boundary: :unknown
:weight: 2
- :idempotent:
+ :idempotent: false
:tags: []
- :name: ci_delete_objects
:worker_name: Ci::DeleteObjectsWorker
:feature_category: :continuous_integration
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -2094,7 +2103,7 @@
- :name: ci_job_artifacts_expire_project_build_artifacts
:worker_name: Ci::JobArtifacts::ExpireProjectBuildArtifactsWorker
:feature_category: :build_artifacts
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -2103,7 +2112,7 @@
- :name: create_commit_signature
:worker_name: CreateCommitSignatureWorker
:feature_category: :source_code_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 2
@@ -2112,11 +2121,11 @@
- :name: create_note_diff_file
:worker_name: CreateNoteDiffFileWorker
:feature_category: :code_review
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: default
:worker_name:
@@ -2130,43 +2139,43 @@
- :name: delete_diff_files
:worker_name: DeleteDiffFilesWorker
:feature_category: :code_review
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: delete_merged_branches
:worker_name: DeleteMergedBranchesWorker
:feature_category: :source_code_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: delete_stored_files
:worker_name: DeleteStoredFilesWorker
:feature_category: :not_owned
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: delete_user
:worker_name: DeleteUserWorker
:feature_category: :authentication_and_authorization
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: design_management_copy_design_collection
:worker_name: DesignManagement::CopyDesignCollectionWorker
:feature_category: :design_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -2175,16 +2184,16 @@
- :name: design_management_new_version
:worker_name: DesignManagement::NewVersionWorker
:feature_category: :design_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :memory
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: destroy_pages_deployments
:worker_name: DestroyPagesDeploymentsWorker
:feature_category: :pages
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -2193,16 +2202,16 @@
- :name: detect_repository_languages
:worker_name: DetectRepositoryLanguagesWorker
:feature_category: :source_code_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: disallow_two_factor_for_group
:worker_name: DisallowTwoFactorForGroupWorker
:feature_category: :subgroups
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -2211,7 +2220,7 @@
- :name: disallow_two_factor_for_subgroups
:worker_name: DisallowTwoFactorForSubgroupsWorker
:feature_category: :subgroups
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -2220,26 +2229,26 @@
- :name: email_receiver
:worker_name: EmailReceiverWorker
:feature_category: :team_planning
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :high
:resource_boundary: :unknown
:weight: 2
- :idempotent:
+ :idempotent: false
:tags:
- :needs_own_queue
- :name: emails_on_push
:worker_name: EmailsOnPushWorker
:feature_category: :source_code_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :cpu
:weight: 2
- :idempotent:
+ :idempotent: false
:tags: []
- :name: environments_auto_stop
:worker_name: Environments::AutoStopWorker
:feature_category: :continuous_delivery
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -2261,12 +2270,12 @@
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: experiments_record_conversion_event
:worker_name: Experiments::RecordConversionEventWorker
:feature_category: :users
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -2275,11 +2284,11 @@
- :name: export_csv
:worker_name: ExportCsvWorker
:feature_category: :team_planning
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :cpu
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: external_service_reactive_caching
:worker_name: ExternalServiceReactiveCachingWorker
@@ -2288,21 +2297,21 @@
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: file_hook
:worker_name: FileHookWorker
:feature_category: :integrations
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: flush_counter_increments
:worker_name: FlushCounterIncrementsWorker
:feature_category: :not_owned
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -2311,16 +2320,16 @@
- :name: github_import_advance_stage
:worker_name: Gitlab::GithubImport::AdvanceStageWorker
:feature_category: :importers
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: gitlab_performance_bar_stats
:worker_name: GitlabPerformanceBarStatsWorker
:feature_category: :metrics
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :cpu
:weight: 1
@@ -2329,43 +2338,43 @@
- :name: gitlab_shell
:worker_name: GitlabShellWorker
:feature_category: :source_code_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :high
:resource_boundary: :unknown
:weight: 2
- :idempotent:
+ :idempotent: false
:tags: []
- :name: group_destroy
:worker_name: GroupDestroyWorker
:feature_category: :subgroups
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: group_export
:worker_name: GroupExportWorker
:feature_category: :importers
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: group_import
:worker_name: GroupImportWorker
:feature_category: :importers
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: groups_update_statistics
:worker_name: Groups::UpdateStatisticsWorker
:feature_category: :source_code_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :cpu
:weight: 1
@@ -2374,7 +2383,7 @@
- :name: import_issues_csv
:worker_name: ImportIssuesCsvWorker
:feature_category: :team_planning
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :cpu
:weight: 2
@@ -2383,43 +2392,61 @@
- :name: integrations_create_external_cross_reference
:worker_name: Integrations::CreateExternalCrossReferenceWorker
:feature_category: :integrations
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
:idempotent: true
:tags: []
+- :name: integrations_execute
+ :worker_name: Integrations::ExecuteWorker
+ :feature_category: :integrations
+ :has_external_dependencies: true
+ :urgency: :low
+ :resource_boundary: :unknown
+ :weight: 1
+ :idempotent: false
+ :tags: []
+- :name: integrations_irker
+ :worker_name: Integrations::IrkerWorker
+ :feature_category: :integrations
+ :has_external_dependencies: false
+ :urgency: :low
+ :resource_boundary: :unknown
+ :weight: 1
+ :idempotent: false
+ :tags: []
- :name: invalid_gpg_signature_update
:worker_name: InvalidGpgSignatureUpdateWorker
:feature_category: :source_code_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 2
- :idempotent:
+ :idempotent: false
:tags: []
- :name: irker
:worker_name: IrkerWorker
:feature_category: :integrations
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: issuable_export_csv
:worker_name: IssuableExportCsvWorker
:feature_category: :team_planning
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :cpu
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: issuable_label_links_destroy
:worker_name: Issuable::LabelLinksDestroyWorker
:feature_category: :team_planning
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -2428,25 +2455,7 @@
- :name: issuables_clear_groups_issue_counter
:worker_name: Issuables::ClearGroupsIssueCounterWorker
:feature_category: :team_planning
- :has_external_dependencies:
- :urgency: :low
- :resource_boundary: :unknown
- :weight: 1
- :idempotent: true
- :tags: []
-- :name: issue_placement
- :worker_name: IssuePlacementWorker
- :feature_category: :team_planning
- :has_external_dependencies:
- :urgency: :high
- :resource_boundary: :cpu
- :weight: 2
- :idempotent: true
- :tags: []
-- :name: issue_rebalancing
- :worker_name: IssueRebalancingWorker
- :feature_category: :team_planning
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -2455,7 +2464,7 @@
- :name: issues_placement
:worker_name: Issues::PlacementWorker
:feature_category: :team_planning
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :high
:resource_boundary: :cpu
:weight: 2
@@ -2464,7 +2473,7 @@
- :name: issues_rebalancing
:worker_name: Issues::RebalancingWorker
:feature_category: :team_planning
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -2482,7 +2491,7 @@
- :name: merge
:worker_name: MergeWorker
:feature_category: :source_code_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :high
:resource_boundary: :unknown
:weight: 5
@@ -2491,7 +2500,7 @@
- :name: merge_request_cleanup_refs
:worker_name: MergeRequestCleanupRefsWorker
:feature_category: :code_review
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -2500,7 +2509,7 @@
- :name: merge_request_mergeability_check
:worker_name: MergeRequestMergeabilityCheckWorker
:feature_category: :code_review
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -2518,7 +2527,7 @@
- :name: merge_requests_delete_source_branch
:worker_name: MergeRequests::DeleteSourceBranchWorker
:feature_category: :source_code_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :high
:resource_boundary: :unknown
:weight: 1
@@ -2527,7 +2536,7 @@
- :name: merge_requests_handle_assignees_change
:worker_name: MergeRequests::HandleAssigneesChangeWorker
:feature_category: :code_review
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :high
:resource_boundary: :unknown
:weight: 1
@@ -2536,7 +2545,7 @@
- :name: merge_requests_resolve_todos
:worker_name: MergeRequests::ResolveTodosWorker
:feature_category: :code_review
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :high
:resource_boundary: :unknown
:weight: 1
@@ -2545,7 +2554,7 @@
- :name: merge_requests_update_head_pipeline
:worker_name: MergeRequests::UpdateHeadPipelineWorker
:feature_category: :code_review
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :high
:resource_boundary: :cpu
:weight: 1
@@ -2554,7 +2563,7 @@
- :name: metrics_dashboard_prune_old_annotations
:worker_name: Metrics::Dashboard::PruneOldAnnotationsWorker
:feature_category: :metrics
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -2563,7 +2572,7 @@
- :name: metrics_dashboard_sync_dashboards
:worker_name: Metrics::Dashboard::SyncDashboardsWorker
:feature_category: :metrics
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -2572,25 +2581,16 @@
- :name: migrate_external_diffs
:worker_name: MigrateExternalDiffsWorker
:feature_category: :code_review
- :has_external_dependencies:
- :urgency: :low
- :resource_boundary: :unknown
- :weight: 1
- :idempotent:
- :tags: []
-- :name: namespaceless_project_destroy
- :worker_name: NamespacelessProjectDestroyWorker
- :feature_category: :authentication_and_authorization
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: namespaces_onboarding_issue_created
:worker_name: Namespaces::OnboardingIssueCreatedWorker
:feature_category: :onboarding
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -2599,7 +2599,7 @@
- :name: namespaces_onboarding_pipeline_created
:worker_name: Namespaces::OnboardingPipelineCreatedWorker
:feature_category: :onboarding
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -2608,7 +2608,7 @@
- :name: namespaces_onboarding_progress
:worker_name: Namespaces::OnboardingProgressWorker
:feature_category: :onboarding
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :cpu
:weight: 1
@@ -2617,7 +2617,7 @@
- :name: namespaces_onboarding_user_added
:worker_name: Namespaces::OnboardingUserAddedWorker
:feature_category: :onboarding
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -2625,8 +2625,8 @@
:tags: []
- :name: namespaces_process_sync_events
:worker_name: Namespaces::ProcessSyncEventsWorker
- :feature_category: :sharding
- :has_external_dependencies:
+ :feature_category: :pods
+ :has_external_dependencies: false
:urgency: :high
:resource_boundary: :unknown
:weight: 1
@@ -2635,7 +2635,7 @@
- :name: namespaces_update_root_statistics
:worker_name: Namespaces::UpdateRootStatisticsWorker
:feature_category: :source_code_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -2644,34 +2644,34 @@
- :name: new_issue
:worker_name: NewIssueWorker
:feature_category: :team_planning
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :high
:resource_boundary: :cpu
:weight: 2
- :idempotent:
+ :idempotent: false
:tags: []
- :name: new_merge_request
:worker_name: NewMergeRequestWorker
:feature_category: :code_review
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :high
:resource_boundary: :cpu
:weight: 2
- :idempotent:
+ :idempotent: false
:tags: []
- :name: new_note
:worker_name: NewNoteWorker
:feature_category: :team_planning
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :high
:resource_boundary: :cpu
:weight: 2
- :idempotent:
+ :idempotent: false
:tags: []
- :name: packages_composer_cache_update
:worker_name: Packages::Composer::CacheUpdateWorker
:feature_category: :package_registry
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -2680,52 +2680,52 @@
- :name: pages
:worker_name: PagesWorker
:feature_category: :pages
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :cpu
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: pages_domain_ssl_renewal
:worker_name: PagesDomainSslRenewalWorker
:feature_category: :pages
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: pages_domain_verification
:worker_name: PagesDomainVerificationWorker
:feature_category: :pages
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: pages_transfer
:worker_name: PagesTransferWorker
:feature_category: :pages
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: phabricator_import_import_tasks
:worker_name: Gitlab::PhabricatorImport::ImportTasksWorker
:feature_category: :importers
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: post_receive
:worker_name: PostReceive
:feature_category: :source_code_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :high
:resource_boundary: :cpu
:weight: 5
@@ -2734,7 +2734,7 @@
- :name: process_commit
:worker_name: ProcessCommitWorker
:feature_category: :source_code_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :high
:resource_boundary: :unknown
:weight: 3
@@ -2743,38 +2743,29 @@
- :name: project_cache
:worker_name: ProjectCacheWorker
:feature_category: :source_code_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :high
:resource_boundary: :unknown
:weight: 1
:idempotent: true
:tags: []
-- :name: project_daily_statistics
- :worker_name: ProjectDailyStatisticsWorker
- :feature_category: :source_code_management
- :has_external_dependencies:
- :urgency: :low
- :resource_boundary: :unknown
- :weight: 1
- :idempotent:
- :tags: []
- :name: project_destroy
:worker_name: ProjectDestroyWorker
:feature_category: :source_code_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: project_export
:worker_name: ProjectExportWorker
:feature_category: :importers
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :memory
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: project_service
:worker_name: ProjectServiceWorker
@@ -2783,12 +2774,12 @@
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: projects_after_import
:worker_name: Projects::AfterImportWorker
:feature_category: :importers
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -2797,16 +2788,16 @@
- :name: projects_git_garbage_collect
:worker_name: Projects::GitGarbageCollectWorker
:feature_category: :gitaly
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: projects_inactive_projects_deletion_notification
:worker_name: Projects::InactiveProjectsDeletionNotificationWorker
:feature_category: :compliance_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -2815,7 +2806,7 @@
- :name: projects_post_creation
:worker_name: Projects::PostCreationWorker
:feature_category: :source_code_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -2823,8 +2814,8 @@
:tags: []
- :name: projects_process_sync_events
:worker_name: Projects::ProcessSyncEventsWorker
- :feature_category: :sharding
- :has_external_dependencies:
+ :feature_category: :pods
+ :has_external_dependencies: false
:urgency: :high
:resource_boundary: :unknown
:weight: 1
@@ -2833,7 +2824,7 @@
- :name: projects_record_target_platforms
:worker_name: Projects::RecordTargetPlatformsWorker
:feature_category: :experimentation_activation
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -2842,7 +2833,7 @@
- :name: projects_refresh_build_artifacts_size_statistics
:worker_name: Projects::RefreshBuildArtifactsSizeStatisticsWorker
:feature_category: :build_artifacts
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -2851,7 +2842,7 @@
- :name: projects_schedule_bulk_repository_shard_moves
:worker_name: Projects::ScheduleBulkRepositoryShardMovesWorker
:feature_category: :gitaly
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :throttled
:resource_boundary: :unknown
:weight: 1
@@ -2860,25 +2851,16 @@
- :name: projects_update_repository_storage
:worker_name: Projects::UpdateRepositoryStorageWorker
:feature_category: :gitaly
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :throttled
:resource_boundary: :unknown
:weight: 1
:idempotent: true
:tags: []
-- :name: prometheus_create_default_alerts
- :worker_name: Prometheus::CreateDefaultAlertsWorker
- :feature_category: :incident_management
- :has_external_dependencies:
- :urgency: :high
- :resource_boundary: :unknown
- :weight: 1
- :idempotent: true
- :tags: []
- :name: propagate_integration
:worker_name: PropagateIntegrationWorker
:feature_category: :integrations
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -2887,7 +2869,7 @@
- :name: propagate_integration_group
:worker_name: PropagateIntegrationGroupWorker
:feature_category: :integrations
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -2896,7 +2878,7 @@
- :name: propagate_integration_inherit
:worker_name: PropagateIntegrationInheritWorker
:feature_category: :integrations
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -2905,7 +2887,7 @@
- :name: propagate_integration_inherit_descendant
:worker_name: PropagateIntegrationInheritDescendantWorker
:feature_category: :integrations
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -2914,7 +2896,7 @@
- :name: propagate_integration_project
:worker_name: PropagateIntegrationProjectWorker
:feature_category: :integrations
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -2923,56 +2905,56 @@
- :name: reactive_caching
:worker_name: ReactiveCachingWorker
:feature_category: :not_owned
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :cpu
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: rebase
:worker_name: RebaseWorker
:feature_category: :source_code_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 2
- :idempotent:
+ :idempotent: false
:tags: []
- :name: releases_create_evidence
:worker_name: Releases::CreateEvidenceWorker
:feature_category: :release_evidence
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: remote_mirror_notification
:worker_name: RemoteMirrorNotificationWorker
:feature_category: :source_code_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 2
- :idempotent:
+ :idempotent: false
:tags: []
- :name: repository_cleanup
:worker_name: RepositoryCleanupWorker
:feature_category: :source_code_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: repository_fork
:worker_name: RepositoryForkWorker
:feature_category: :source_code_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: repository_import
:worker_name: RepositoryImportWorker
@@ -2981,16 +2963,7 @@
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
- :tags: []
-- :name: repository_remove_remote
- :worker_name: RepositoryRemoveRemoteWorker
- :feature_category: :source_code_management
- :has_external_dependencies:
- :urgency: :low
- :resource_boundary: :unknown
- :weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: repository_update_remote_mirror
:worker_name: RepositoryUpdateRemoteMirrorWorker
@@ -3004,35 +2977,35 @@
- :name: self_monitoring_project_create
:worker_name: SelfMonitoringProjectCreateWorker
:feature_category: :metrics
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 2
- :idempotent:
+ :idempotent: false
:tags: []
- :name: self_monitoring_project_delete
:worker_name: SelfMonitoringProjectDeleteWorker
:feature_category: :metrics
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 2
- :idempotent:
+ :idempotent: false
:tags: []
- :name: service_desk_email_receiver
:worker_name: ServiceDeskEmailReceiverWorker
:feature_category: :service_desk
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :high
:resource_boundary: :unknown
- :weight: 1
- :idempotent:
+ :weight: 2
+ :idempotent: false
:tags:
- :needs_own_queue
- :name: snippets_schedule_bulk_repository_shard_moves
:worker_name: Snippets::ScheduleBulkRepositoryShardMovesWorker
:feature_category: :gitaly
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :throttled
:resource_boundary: :unknown
:weight: 1
@@ -3041,7 +3014,7 @@
- :name: snippets_update_repository_storage
:worker_name: Snippets::UpdateRepositoryStorageWorker
:feature_category: :gitaly
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :throttled
:resource_boundary: :unknown
:weight: 1
@@ -3050,16 +3023,16 @@
- :name: system_hook_push
:worker_name: SystemHookPushWorker
:feature_category: :source_code_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: tasks_to_be_done_create
:worker_name: TasksToBeDone::CreateWorker
:feature_category: :onboarding
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :cpu
:weight: 1
@@ -3068,16 +3041,16 @@
- :name: update_external_pull_requests
:worker_name: UpdateExternalPullRequestsWorker
:feature_category: :continuous_integration
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 3
- :idempotent:
+ :idempotent: false
:tags: []
- :name: update_highest_role
:worker_name: UpdateHighestRoleWorker
:feature_category: :utilization
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :high
:resource_boundary: :unknown
:weight: 2
@@ -3086,29 +3059,29 @@
- :name: update_merge_requests
:worker_name: UpdateMergeRequestsWorker
:feature_category: :code_review
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :high
:resource_boundary: :cpu
:weight: 3
- :idempotent:
+ :idempotent: false
:tags: []
- :name: update_project_statistics
:worker_name: UpdateProjectStatisticsWorker
:feature_category: :source_code_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: upload_checksum
:worker_name: UploadChecksumWorker
:feature_category: :geo_replication
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: web_hook
:worker_name: WebHookWorker
@@ -3117,21 +3090,30 @@
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: web_hooks_destroy
:worker_name: WebHooks::DestroyWorker
:feature_category: :integrations
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :high
:resource_boundary: :unknown
:weight: 1
:idempotent: true
:tags: []
+- :name: web_hooks_log_destroy
+ :worker_name: WebHooks::LogDestroyWorker
+ :feature_category: :integrations
+ :has_external_dependencies: false
+ :urgency: :low
+ :resource_boundary: :unknown
+ :weight: 1
+ :idempotent: true
+ :tags: []
- :name: web_hooks_log_execution
:worker_name: WebHooks::LogExecutionWorker
:feature_category: :integrations
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
@@ -3140,16 +3122,16 @@
- :name: wikis_git_garbage_collect
:worker_name: Wikis::GitGarbageCollectWorker
:feature_category: :gitaly
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent:
+ :idempotent: false
:tags: []
- :name: x509_certificate_revoke
:worker_name: X509CertificateRevokeWorker
:feature_category: :source_code_management
- :has_external_dependencies:
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
diff --git a/app/workers/background_migration/single_database_worker.rb b/app/workers/background_migration/single_database_worker.rb
index f3a2165c41e..2f797a24468 100644
--- a/app/workers/background_migration/single_database_worker.rb
+++ b/app/workers/background_migration/single_database_worker.rb
@@ -7,6 +7,7 @@ module BackgroundMigration
include ApplicationWorker
MAX_LEASE_ATTEMPTS = 5
+ BACKGROUND_MIGRATIONS_DELAY = 4.hours.freeze
included do
data_consistency :always
@@ -44,6 +45,18 @@ module BackgroundMigration
# lease on the class before giving up. See MR for more discussion.
# https://gitlab.com/gitlab-org/gitlab/-/merge_requests/45298#note_434304956
def perform(class_name, arguments = [], lease_attempts = MAX_LEASE_ATTEMPTS)
+ unless Feature.enabled?(:execute_background_migrations, type: :ops)
+ # Delay execution of background migrations
+ self.class.perform_in(BACKGROUND_MIGRATIONS_DELAY, class_name, arguments, lease_attempts)
+
+ Sidekiq.logger.info(
+ class: self.class.name,
+ database: self.class.tracking_database,
+ message: 'skipping execution, migration rescheduled')
+
+ return
+ end
+
job_coordinator.with_shared_connection do
perform_with_connection(class_name, arguments, lease_attempts)
end
diff --git a/app/workers/build_success_worker.rb b/app/workers/build_success_worker.rb
index 114bced0b22..247105d2a1a 100644
--- a/app/workers/build_success_worker.rb
+++ b/app/workers/build_success_worker.rb
@@ -13,13 +13,13 @@ class BuildSuccessWorker # rubocop:disable Scalability/IdempotentWorker
def perform(build_id)
Ci::Build.find_by_id(build_id).try do |build|
- stop_environment(build) if build.stops_environment?
+ stop_environment(build) if build.stops_environment? && build.stop_action_successful?
end
end
private
def stop_environment(build)
- build.persisted_environment.fire_state_event(:stop)
+ build.persisted_environment.fire_state_event(:stop_complete)
end
end
diff --git a/app/workers/bulk_import_worker.rb b/app/workers/bulk_import_worker.rb
index 157586ca397..c7efc92b25e 100644
--- a/app/workers/bulk_import_worker.rb
+++ b/app/workers/bulk_import_worker.rb
@@ -20,7 +20,7 @@ class BulkImportWorker # rubocop:disable Scalability/IdempotentWorker
@bulk_import.start! if @bulk_import.created?
created_entities.find_each do |entity|
- entity.create_pipeline_trackers!
+ BulkImports::CreatePipelineTrackersService.new(entity).execute!
BulkImports::ExportRequestWorker.perform_async(entity.id)
BulkImports::EntityWorker.perform_async(entity.id)
diff --git a/app/workers/bulk_imports/pipeline_worker.rb b/app/workers/bulk_imports/pipeline_worker.rb
index b515f0fa202..9c95e25e2e8 100644
--- a/app/workers/bulk_imports/pipeline_worker.rb
+++ b/app/workers/bulk_imports/pipeline_worker.rb
@@ -12,7 +12,7 @@ module BulkImports
worker_has_external_dependencies!
def perform(pipeline_tracker_id, stage, entity_id)
- pipeline_tracker = ::BulkImports::Tracker
+ @pipeline_tracker = ::BulkImports::Tracker
.with_status(:enqueued)
.find_by_id(pipeline_tracker_id)
@@ -24,7 +24,7 @@ module BulkImports
)
)
- run(pipeline_tracker)
+ run
else
logger.error(
structured_payload(
@@ -41,48 +41,29 @@ module BulkImports
private
- def run(pipeline_tracker)
- if pipeline_tracker.entity.failed?
- raise(Entity::FailedError, 'Failed entity status')
- end
-
- if file_extraction_pipeline?(pipeline_tracker)
- export_status = ExportStatus.new(pipeline_tracker, pipeline_tracker.pipeline_class.relation)
+ attr_reader :pipeline_tracker
- raise(Pipeline::ExpiredError, 'Pipeline timeout') if job_timeout?(pipeline_tracker)
- raise(Pipeline::FailedError, export_status.error) if export_status.failed?
+ def run
+ raise(Entity::FailedError, 'Failed entity status') if pipeline_tracker.entity.failed?
+ raise(Pipeline::ExpiredError, 'Pipeline timeout') if job_timeout?
+ raise(Pipeline::FailedError, export_status.error) if export_failed?
- return reenqueue(pipeline_tracker) if export_status.started?
- end
+ return re_enqueue if export_empty? || export_started?
pipeline_tracker.update!(status_event: 'start', jid: jid)
-
- context = ::BulkImports::Pipeline::Context.new(pipeline_tracker)
-
pipeline_tracker.pipeline_class.new(context).run
-
pipeline_tracker.finish!
rescue BulkImports::NetworkError => e
if e.retriable?(pipeline_tracker)
- logger.error(
- structured_payload(
- entity_id: pipeline_tracker.entity.id,
- pipeline_name: pipeline_tracker.pipeline_name,
- message: "Retrying error: #{e.message}"
- )
- )
-
- pipeline_tracker.update!(status_event: 'retry', jid: jid)
-
- reenqueue(pipeline_tracker, delay: e.retry_delay)
+ retry_tracker(e)
else
- fail_tracker(pipeline_tracker, e)
+ fail_tracker(e)
end
rescue StandardError => e
- fail_tracker(pipeline_tracker, e)
+ fail_tracker(e)
end
- def fail_tracker(pipeline_tracker, exception)
+ def fail_tracker(exception)
pipeline_tracker.update!(status_event: 'fail_op', jid: jid)
logger.error(
@@ -98,21 +79,22 @@ module BulkImports
entity_id: pipeline_tracker.entity.id,
pipeline_name: pipeline_tracker.pipeline_name
)
+
+ BulkImports::Failure.create(
+ bulk_import_entity_id: context.entity.id,
+ pipeline_class: pipeline_tracker.pipeline_name,
+ pipeline_step: 'pipeline_worker_run',
+ exception_class: exception.class.to_s,
+ exception_message: exception.message.truncate(255),
+ correlation_id_value: Labkit::Correlation::CorrelationId.current_or_new_id
+ )
end
def logger
@logger ||= Gitlab::Import::Logger.build
end
- def file_extraction_pipeline?(pipeline_tracker)
- pipeline_tracker.pipeline_class.file_extraction_pipeline?
- end
-
- def job_timeout?(pipeline_tracker)
- (Time.zone.now - pipeline_tracker.entity.created_at) > Pipeline::NDJSON_EXPORT_TIMEOUT
- end
-
- def reenqueue(pipeline_tracker, delay: FILE_EXTRACTION_PIPELINE_PERFORM_DELAY)
+ def re_enqueue(delay = FILE_EXTRACTION_PIPELINE_PERFORM_DELAY)
self.class.perform_in(
delay,
pipeline_tracker.id,
@@ -120,5 +102,55 @@ module BulkImports
pipeline_tracker.entity.id
)
end
+
+ def context
+ @context ||= ::BulkImports::Pipeline::Context.new(pipeline_tracker)
+ end
+
+ def export_status
+ @export_status ||= ExportStatus.new(pipeline_tracker, pipeline_tracker.pipeline_class.relation)
+ end
+
+ def file_extraction_pipeline?
+ pipeline_tracker.file_extraction_pipeline?
+ end
+
+ def job_timeout?
+ return false unless file_extraction_pipeline?
+
+ (Time.zone.now - pipeline_tracker.entity.created_at) > Pipeline::NDJSON_EXPORT_TIMEOUT
+ end
+
+ def export_failed?
+ return false unless file_extraction_pipeline?
+
+ export_status.failed?
+ end
+
+ def export_started?
+ return false unless file_extraction_pipeline?
+
+ export_status.started?
+ end
+
+ def export_empty?
+ return false unless file_extraction_pipeline?
+
+ export_status.empty?
+ end
+
+ def retry_tracker(exception)
+ logger.error(
+ structured_payload(
+ entity_id: pipeline_tracker.entity.id,
+ pipeline_name: pipeline_tracker.pipeline_name,
+ message: "Retrying error: #{exception.message}"
+ )
+ )
+
+ pipeline_tracker.update!(status_event: 'retry', jid: jid)
+
+ re_enqueue(exception.retry_delay)
+ end
end
end
diff --git a/app/workers/ci/archive_trace_worker.rb b/app/workers/ci/archive_trace_worker.rb
index 5a22a5c74ee..47d77c15b4a 100644
--- a/app/workers/ci/archive_trace_worker.rb
+++ b/app/workers/ci/archive_trace_worker.rb
@@ -4,13 +4,19 @@ module Ci
class ArchiveTraceWorker # rubocop:disable Scalability/IdempotentWorker
include ApplicationWorker
- data_consistency :always
+ data_consistency :sticky, feature_flag: :sticky_ci_archive_trace_worker
sidekiq_options retry: 3
include PipelineBackgroundQueue
def perform(job_id)
- Ci::Build.without_archived_trace.find_by_id(job_id).try do |job|
+ archivable_jobs = Ci::Build.without_archived_trace
+
+ if Feature.enabled?(:sticky_ci_archive_trace_worker)
+ archivable_jobs = archivable_jobs.eager_load_for_archiving_trace
+ end
+
+ archivable_jobs.find_by_id(job_id).try do |job|
Ci::ArchiveTraceService.new.execute(job, worker_name: self.class.name)
end
end
diff --git a/app/workers/ci/pipeline_artifacts/coverage_report_worker.rb b/app/workers/ci/pipeline_artifacts/coverage_report_worker.rb
index 16c4744eae1..8ee518e3ae6 100644
--- a/app/workers/ci/pipeline_artifacts/coverage_report_worker.rb
+++ b/app/workers/ci/pipeline_artifacts/coverage_report_worker.rb
@@ -16,7 +16,7 @@ module Ci
def perform(pipeline_id)
Ci::Pipeline.find_by_id(pipeline_id).try do |pipeline|
- Ci::PipelineArtifacts::CoverageReportService.new.execute(pipeline)
+ Ci::PipelineArtifacts::CoverageReportService.new(pipeline).execute
end
end
end
diff --git a/app/workers/clusters/applications/activate_integration_worker.rb b/app/workers/clusters/applications/activate_integration_worker.rb
new file mode 100644
index 00000000000..29813afd168
--- /dev/null
+++ b/app/workers/clusters/applications/activate_integration_worker.rb
@@ -0,0 +1,25 @@
+# frozen_string_literal: true
+
+module Clusters
+ module Applications
+ class ActivateIntegrationWorker # rubocop:disable Scalability/IdempotentWorker
+ include ApplicationWorker
+
+ data_consistency :always
+
+ sidekiq_options retry: 3
+ include ClusterQueue
+
+ loggable_arguments 1
+
+ def perform(cluster_id, integration_name)
+ cluster = Clusters::Cluster.find_by_id(cluster_id)
+ return unless cluster
+
+ cluster.all_projects.find_each do |project|
+ project.find_or_initialize_integration(integration_name).update!(active: true)
+ end
+ end
+ end
+ end
+end
diff --git a/app/workers/clusters/applications/activate_service_worker.rb b/app/workers/clusters/applications/activate_service_worker.rb
index 55e224887f4..abc84bcd093 100644
--- a/app/workers/clusters/applications/activate_service_worker.rb
+++ b/app/workers/clusters/applications/activate_service_worker.rb
@@ -1,25 +1,12 @@
# frozen_string_literal: true
+# This worker was renamed in 15.1, we can delete it in 15.2.
+# See: https://gitlab.com/gitlab-org/gitlab/-/issues/364112
+#
+# rubocop:disable Scalability/IdempotentWorker
module Clusters
module Applications
- class ActivateServiceWorker # rubocop:disable Scalability/IdempotentWorker
- include ApplicationWorker
-
- data_consistency :always
-
- sidekiq_options retry: 3
- include ClusterQueue
-
- loggable_arguments 1
-
- def perform(cluster_id, service_name)
- cluster = Clusters::Cluster.find_by_id(cluster_id)
- return unless cluster
-
- cluster.all_projects.find_each do |project|
- project.find_or_initialize_integration(service_name).update!(active: true)
- end
- end
+ class ActivateServiceWorker < ActivateIntegrationWorker
end
end
end
diff --git a/app/workers/clusters/applications/deactivate_integration_worker.rb b/app/workers/clusters/applications/deactivate_integration_worker.rb
new file mode 100644
index 00000000000..d1db99d21af
--- /dev/null
+++ b/app/workers/clusters/applications/deactivate_integration_worker.rb
@@ -0,0 +1,39 @@
+# frozen_string_literal: true
+
+module Clusters
+ module Applications
+ class DeactivateIntegrationWorker # rubocop:disable Scalability/IdempotentWorker
+ include ApplicationWorker
+
+ data_consistency :always
+
+ sidekiq_options retry: 3
+ include ClusterQueue
+
+ loggable_arguments 1
+
+ def perform(cluster_id, integration_name)
+ cluster = Clusters::Cluster.find_by_id(cluster_id)
+ raise cluster_missing_error(integration_name) unless cluster
+
+ integration_class = Integration.integration_name_to_model(integration_name)
+ integration_association_name = ::Project.integration_association_name(integration_name).to_sym
+
+ projects = cluster.all_projects
+ .with_integration(integration_class)
+ .include_integration(integration_association_name)
+
+ projects.find_each do |project|
+ project.public_send(integration_association_name).update!(active: false) # rubocop:disable GitlabSecurity/PublicSend
+ end
+ end
+
+ def cluster_missing_error(integration_name)
+ ActiveRecord::RecordNotFound.new(
+ "Can't deactivate #{integration_name} integrations, host cluster not found! " \
+ "Some inconsistent records may be left in database."
+ )
+ end
+ end
+ end
+end
diff --git a/app/workers/clusters/applications/deactivate_service_worker.rb b/app/workers/clusters/applications/deactivate_service_worker.rb
index 4c8d21a7c4d..88219b8b17e 100644
--- a/app/workers/clusters/applications/deactivate_service_worker.rb
+++ b/app/workers/clusters/applications/deactivate_service_worker.rb
@@ -1,32 +1,12 @@
# frozen_string_literal: true
+# This worker was renamed in 15.1, we can delete it in 15.2.
+# See: https://gitlab.com/gitlab-org/gitlab/-/issues/364112
+#
+# rubocop:disable Scalability/IdempotentWorker
module Clusters
module Applications
- class DeactivateServiceWorker # rubocop:disable Scalability/IdempotentWorker
- include ApplicationWorker
-
- data_consistency :always
-
- sidekiq_options retry: 3
- include ClusterQueue
-
- loggable_arguments 1
-
- def perform(cluster_id, integration_name)
- cluster = Clusters::Cluster.find_by_id(cluster_id)
- raise cluster_missing_error(integration_name) unless cluster
-
- integration_class = Integration.integration_name_to_model(integration_name)
- integration_association_name = ::Project.integration_association_name(integration_name).to_sym
-
- cluster.all_projects.with_integration(integration_class).include_integration(integration_association_name).find_each do |project|
- project.public_send(integration_association_name).update!(active: false) # rubocop:disable GitlabSecurity/PublicSend
- end
- end
-
- def cluster_missing_error(integration_name)
- ActiveRecord::RecordNotFound.new("Can't deactivate #{integration_name} integrations, host cluster not found! Some inconsistent records may be left in database.")
- end
+ class DeactivateServiceWorker < DeactivateIntegrationWorker
end
end
end
diff --git a/app/workers/concerns/limited_capacity/job_tracker.rb b/app/workers/concerns/limited_capacity/job_tracker.rb
index 47b13cd5bf6..a1eb4e45027 100644
--- a/app/workers/concerns/limited_capacity/job_tracker.rb
+++ b/app/workers/concerns/limited_capacity/job_tracker.rb
@@ -62,7 +62,7 @@ module LimitedCapacity
end
def with_redis(&block)
- Gitlab::Redis::Queues.with(&block) # rubocop: disable CodeReuse/ActiveRecord
+ Gitlab::Redis::SharedState.with(&block) # rubocop: disable CodeReuse/ActiveRecord
end
end
end
diff --git a/app/workers/concerns/worker_attributes.rb b/app/workers/concerns/worker_attributes.rb
index 5d7251e9a98..8a135bc1853 100644
--- a/app/workers/concerns/worker_attributes.rb
+++ b/app/workers/concerns/worker_attributes.rb
@@ -67,7 +67,7 @@ module WorkerAttributes
end
def get_urgency
- class_attributes[:urgency] || :low
+ get_class_attribute(:urgency) || :low
end
# Allows configuring worker's data_consistency.
@@ -98,13 +98,13 @@ module WorkerAttributes
end
def get_data_consistency
- class_attributes[:data_consistency] || DEFAULT_DATA_CONSISTENCY
+ get_class_attribute(:data_consistency) || DEFAULT_DATA_CONSISTENCY
end
def get_data_consistency_feature_flag_enabled?
- return true unless class_attributes[:data_consistency_feature_flag]
+ return true unless get_class_attribute(:data_consistency_feature_flag)
- Feature.enabled?(class_attributes[:data_consistency_feature_flag])
+ Feature.enabled?(get_class_attribute(:data_consistency_feature_flag))
end
# Set this attribute on a job when it will call to services outside of the
@@ -115,11 +115,11 @@ module WorkerAttributes
set_class_attribute(:external_dependencies, true)
end
- # Returns a truthy value if the worker has external dependencies.
+ # Returns true if the worker has external dependencies.
# See doc/development/sidekiq_style_guide.md#jobs-with-external-dependencies
# for details
def worker_has_external_dependencies?
- class_attributes[:external_dependencies]
+ !!get_class_attribute(:external_dependencies)
end
def worker_resource_boundary(boundary)
@@ -129,7 +129,7 @@ module WorkerAttributes
end
def get_worker_resource_boundary
- class_attributes[:resource_boundary] || :unknown
+ get_class_attribute(:resource_boundary) || :unknown
end
def idempotent!
@@ -137,7 +137,7 @@ module WorkerAttributes
end
def idempotent?
- class_attributes[:idempotent]
+ !!get_class_attribute(:idempotent)
end
def weight(value)
@@ -145,7 +145,7 @@ module WorkerAttributes
end
def get_weight
- class_attributes[:weight] ||
+ get_class_attribute(:weight) ||
NAMESPACE_WEIGHTS[queue_namespace] ||
1
end
@@ -155,7 +155,7 @@ module WorkerAttributes
end
def get_tags
- Array(class_attributes[:tags])
+ Array(get_class_attribute(:tags))
end
def deduplicate(strategy, options = {})
@@ -164,12 +164,12 @@ module WorkerAttributes
end
def get_deduplicate_strategy
- class_attributes[:deduplication_strategy] ||
+ get_class_attribute(:deduplication_strategy) ||
Gitlab::SidekiqMiddleware::DuplicateJobs::DuplicateJob::DEFAULT_STRATEGY
end
def get_deduplication_options
- class_attributes[:deduplication_options] || {}
+ get_class_attribute(:deduplication_options) || {}
end
def deduplication_enabled?
@@ -183,7 +183,7 @@ module WorkerAttributes
end
def big_payload?
- class_attributes[:big_payload]
+ !!get_class_attribute(:big_payload)
end
end
end
diff --git a/app/workers/container_registry/migration/enqueuer_worker.rb b/app/workers/container_registry/migration/enqueuer_worker.rb
index a0babb98e82..f3c8dfa63ad 100644
--- a/app/workers/container_registry/migration/enqueuer_worker.rb
+++ b/app/workers/container_registry/migration/enqueuer_worker.rb
@@ -17,19 +17,8 @@ module ContainerRegistry
idempotent!
def perform
- migration.enqueuer_loop? ? perform_with_loop : perform_without_loop
- end
-
- def self.enqueue_a_job
- perform_async
- perform_in(7.seconds) if ::ContainerRegistry::Migration.enqueue_twice?
- end
-
- private
-
- def perform_with_loop
try_obtain_lease do
- while runnable? && Time.zone.now < loop_deadline && migration.enqueuer_loop?
+ while runnable? && Time.zone.now < loop_deadline
repository_handled = handle_aborted_migration || handle_next_migration
# no repository was found: stop the loop
@@ -43,40 +32,29 @@ module ContainerRegistry
end
end
- def perform_without_loop
- re_enqueue = false
- try_obtain_lease do
- break unless runnable?
-
- re_enqueue = handle_aborted_migration || handle_next_migration
- end
- re_enqueue_if_capacity if re_enqueue
+ def self.enqueue_a_job
+ perform_async
end
+ private
+
def handle_aborted_migration
return unless next_aborted_repository
- log_on_done(:import_type, 'retry')
- log_repository(next_aborted_repository)
-
next_aborted_repository.retry_aborted_migration
true
rescue StandardError => e
Gitlab::ErrorTracking.log_exception(e, next_aborted_repository_id: next_aborted_repository&.id)
- migration.enqueuer_loop? ? false : true
+ false
ensure
- log_repository_migration_state(next_aborted_repository)
log_repository_info(next_aborted_repository, import_type: 'retry')
end
def handle_next_migration
return unless next_repository
- log_on_done(:import_type, 'next')
- log_repository(next_repository)
-
# We return true because the repository was successfully processed (migration_state is changed)
return true if tag_count_too_high?
return unless next_repository.start_pre_import
@@ -88,7 +66,6 @@ module ContainerRegistry
false
ensure
- log_repository_migration_state(next_repository)
log_repository_info(next_repository, import_type: 'next')
end
@@ -97,8 +74,6 @@ module ContainerRegistry
return false unless next_repository.tags_count > migration.max_tags_count
next_repository.skip_import(reason: :too_many_tags)
- log_on_done(:tags_count_too_high, true)
- log_on_done(:max_tags_count_setting, migration.max_tags_count)
true
end
@@ -160,7 +135,7 @@ module ContainerRegistry
def next_aborted_repository
strong_memoize(:next_aborted_repository) do
- ContainerRepository.with_migration_state('import_aborted').take # rubocop:disable CodeReuse/ActiveRecord
+ ContainerRepository.with_migration_state('import_aborted').limit(2)[0] # rubocop:disable CodeReuse/ActiveRecord
end
end
@@ -180,29 +155,11 @@ module ContainerRegistry
self.class.enqueue_a_job
end
- def log_repository(repository)
- log_on_done(:container_repository_id, repository&.id)
- log_on_done(:container_repository_path, repository&.path)
- end
-
- def log_repository_migration_state(repository)
- return unless repository
-
- log_on_done(:container_repository_migration_state, repository.migration_state)
- end
-
- def log_on_done(key, value)
- return if migration.enqueuer_loop?
-
- log_extra_metadata_on_done(key, value)
- end
-
def log_info(extras)
logger.info(structured_payload(extras))
end
def log_repository_info(repository, extras = {})
- return unless migration.enqueuer_loop?
return unless repository
repository_info = {
diff --git a/app/workers/container_registry/migration/guard_worker.rb b/app/workers/container_registry/migration/guard_worker.rb
index 1111061a89b..ae29106b502 100644
--- a/app/workers/container_registry/migration/guard_worker.rb
+++ b/app/workers/container_registry/migration/guard_worker.rb
@@ -22,7 +22,7 @@ module ContainerRegistry
repositories = ::ContainerRepository.with_stale_migration(step_before_timestamp)
.limit(max_capacity)
aborts_count = 0
- long_running_migration_ids = []
+ long_running_migrations = []
# the #to_a is safe as the amount of entries is limited.
# In addition, we're calling #each in the next line and we don't want two different SQL queries for these two lines
@@ -32,7 +32,7 @@ module ContainerRegistry
if actively_importing?(repository)
# if a repository is actively importing but not yet long_running, do nothing
if long_running_migration?(repository)
- long_running_migration_ids << repository.id
+ long_running_migrations << repository
cancel_long_running_migration(repository)
aborts_count += 1
end
@@ -44,8 +44,9 @@ module ContainerRegistry
log_extra_metadata_on_done(:aborted_stale_migrations_count, aborts_count)
- if long_running_migration_ids.any?
- log_extra_metadata_on_done(:aborted_long_running_migration_ids, long_running_migration_ids)
+ if long_running_migrations.any?
+ log_extra_metadata_on_done(:aborted_long_running_migration_ids, long_running_migrations.map(&:id))
+ log_extra_metadata_on_done(:aborted_long_running_migration_paths, long_running_migrations.map(&:path))
end
end
@@ -64,14 +65,16 @@ module ContainerRegistry
end
def long_running_migration?(repository)
- timeout = long_running_migration_threshold
-
- if Feature.enabled?(:registry_migration_guard_thresholds)
- timeout = if repository.migration_state == 'pre_importing'
- migration.pre_import_timeout.seconds
- else
- migration.import_timeout.seconds
- end
+ timeout = if repository.migration_state == 'pre_importing'
+ migration.pre_import_timeout.seconds
+ else
+ migration.import_timeout.seconds
+ end
+
+ if repository.migration_state == 'pre_importing' &&
+ Feature.enabled?(:registry_migration_guard_dynamic_pre_import_timeout) &&
+ migration_start_timestamp(repository).before?(timeout.ago)
+ timeout = migration.dynamic_pre_import_timeout_for(repository)
end
migration_start_timestamp(repository).before?(timeout.ago)
@@ -106,10 +109,6 @@ module ContainerRegistry
::ContainerRegistry::Migration
end
- def long_running_migration_threshold
- @threshold ||= 10.minutes
- end
-
def cancel_long_running_migration(repository)
result = repository.migration_cancel
diff --git a/app/workers/database/batched_background_migration/ci_database_worker.rb b/app/workers/database/batched_background_migration/ci_database_worker.rb
index ee9cbba7076..b04db87631a 100644
--- a/app/workers/database/batched_background_migration/ci_database_worker.rb
+++ b/app/workers/database/batched_background_migration/ci_database_worker.rb
@@ -4,12 +4,8 @@ module Database
class CiDatabaseWorker # rubocop:disable Scalability/IdempotentWorker
include SingleDatabaseWorker
- def self.enabled?
- Feature.enabled?(:execute_batched_migrations_on_schedule_ci_database, type: :ops)
- end
-
def self.tracking_database
- @tracking_database ||= Gitlab::Database::CI_DATABASE_NAME
+ @tracking_database ||= Gitlab::Database::CI_DATABASE_NAME.to_sym
end
end
end
diff --git a/app/workers/database/batched_background_migration/single_database_worker.rb b/app/workers/database/batched_background_migration/single_database_worker.rb
index aeadda4b8e1..cfbd44ba397 100644
--- a/app/workers/database/batched_background_migration/single_database_worker.rb
+++ b/app/workers/database/batched_background_migration/single_database_worker.rb
@@ -7,6 +7,7 @@ module Database
include ApplicationWorker
include CronjobQueue # rubocop:disable Scalability/CronWorkerContext
+ include Gitlab::Utils::StrongMemoize
LEASE_TIMEOUT_MULTIPLIER = 3
MINIMUM_LEASE_TIMEOUT = 10.minutes.freeze
@@ -23,11 +24,11 @@ module Database
def tracking_database
raise NotImplementedError, "#{self.name} does not implement #{__method__}"
end
+ # :nocov:
def enabled?
- raise NotImplementedError, "#{self.name} does not implement #{__method__}"
+ Feature.enabled?(:execute_batched_migrations_on_schedule, type: :ops)
end
- # :nocov:
def lease_key
name.demodulize.underscore
@@ -44,6 +45,15 @@ module Database
return
end
+ if shares_db_config?
+ Sidekiq.logger.info(
+ class: self.class.name,
+ database: self.class.tracking_database,
+ message: 'skipping migration execution for database that shares database configuration with another database')
+
+ return
+ end
+
Gitlab::Database::SharedModel.using_connection(base_model.connection) do
break unless self.class.enabled? && active_migration
@@ -63,7 +73,7 @@ module Database
private
def active_migration
- @active_migration ||= Gitlab::Database::BackgroundMigration::BatchedMigration.active_migration
+ @active_migration ||= Gitlab::Database::BackgroundMigration::BatchedMigration.active_migration(connection: base_model.connection)
end
def run_active_migration
@@ -71,7 +81,13 @@ module Database
end
def base_model
- @base_model ||= Gitlab::Database.database_base_models[self.class.tracking_database]
+ strong_memoize(:base_model) do
+ Gitlab::Database.database_base_models[self.class.tracking_database]
+ end
+ end
+
+ def shares_db_config?
+ base_model && Gitlab::Database.db_config_share_with(base_model.connection_db_config).present?
end
def with_exclusive_lease(interval)
diff --git a/app/workers/database/batched_background_migration_worker.rb b/app/workers/database/batched_background_migration_worker.rb
index 31208d7a473..29804be832d 100644
--- a/app/workers/database/batched_background_migration_worker.rb
+++ b/app/workers/database/batched_background_migration_worker.rb
@@ -4,10 +4,6 @@ module Database
class BatchedBackgroundMigrationWorker # rubocop:disable Scalability/IdempotentWorker
include BatchedBackgroundMigration::SingleDatabaseWorker
- def self.enabled?
- Feature.enabled?(:execute_batched_migrations_on_schedule, type: :ops)
- end
-
def self.tracking_database
@tracking_database ||= Gitlab::Database::MAIN_DATABASE_NAME.to_sym
end
diff --git a/app/workers/database/ci_namespace_mirrors_consistency_check_worker.rb b/app/workers/database/ci_namespace_mirrors_consistency_check_worker.rb
index b2174be1402..8918dca372d 100644
--- a/app/workers/database/ci_namespace_mirrors_consistency_check_worker.rb
+++ b/app/workers/database/ci_namespace_mirrors_consistency_check_worker.rb
@@ -6,15 +6,13 @@ module Database
include CronjobQueue # rubocop: disable Scalability/CronWorkerContext
sidekiq_options retry: false
- feature_category :sharding
+ feature_category :pods
data_consistency :sticky
idempotent!
version 1
def perform
- return if Feature.disabled?(:ci_namespace_mirrors_consistency_check)
-
results = ConsistencyCheckService.new(
source_model: Namespace,
target_model: Ci::NamespaceMirror,
diff --git a/app/workers/database/ci_project_mirrors_consistency_check_worker.rb b/app/workers/database/ci_project_mirrors_consistency_check_worker.rb
index 84052ab238b..5f10310f8d6 100644
--- a/app/workers/database/ci_project_mirrors_consistency_check_worker.rb
+++ b/app/workers/database/ci_project_mirrors_consistency_check_worker.rb
@@ -6,15 +6,13 @@ module Database
include CronjobQueue # rubocop: disable Scalability/CronWorkerContext
sidekiq_options retry: false
- feature_category :sharding
+ feature_category :pods
data_consistency :sticky
idempotent!
version 1
def perform
- return if Feature.disabled?(:ci_project_mirrors_consistency_check)
-
results = ConsistencyCheckService.new(
source_model: Project,
target_model: Ci::ProjectMirror,
diff --git a/app/workers/delete_container_repository_worker.rb b/app/workers/delete_container_repository_worker.rb
index a4d6adc2195..73e6843fdd0 100644
--- a/app/workers/delete_container_repository_worker.rb
+++ b/app/workers/delete_container_repository_worker.rb
@@ -2,16 +2,17 @@
class DeleteContainerRepositoryWorker # rubocop:disable Scalability/IdempotentWorker
include ApplicationWorker
+ include ExclusiveLeaseGuard
data_consistency :always
sidekiq_options retry: 3
- include ExclusiveLeaseGuard
queue_namespace :container_repository
feature_category :container_registry
- LEASE_TIMEOUT = 1.hour
+ LEASE_TIMEOUT = 1.hour.freeze
+ FIXED_DELAY = 10.seconds.freeze
attr_reader :container_repository
@@ -22,6 +23,16 @@ class DeleteContainerRepositoryWorker # rubocop:disable Scalability/IdempotentWo
return unless current_user && container_repository && project
+ if migration.delete_container_repository_worker_support? && migrating?
+ delay = migration_duration
+
+ self.class.perform_in(delay.from_now)
+
+ log_extra_metadata_on_done(:delete_postponed, delay)
+
+ return
+ end
+
# If a user accidentally attempts to delete the same container registry in quick succession,
# this can lead to orphaned tags.
try_obtain_lease do
@@ -29,6 +40,28 @@ class DeleteContainerRepositoryWorker # rubocop:disable Scalability/IdempotentWo
end
end
+ private
+
+ def migrating?
+ !(container_repository.default? ||
+ container_repository.import_done? ||
+ container_repository.import_skipped?)
+ end
+
+ def migration_duration
+ duration = migration.import_timeout.seconds + FIXED_DELAY
+
+ if container_repository.pre_importing?
+ duration += migration.dynamic_pre_import_timeout_for(container_repository)
+ end
+
+ duration
+ end
+
+ def migration
+ ContainerRegistry::Migration
+ end
+
# For ExclusiveLeaseGuard concern
def lease_key
@lease_key ||= "container_repository:delete:#{container_repository.id}"
diff --git a/app/workers/expire_job_cache_worker.rb b/app/workers/expire_job_cache_worker.rb
deleted file mode 100644
index eaa8810a78e..00000000000
--- a/app/workers/expire_job_cache_worker.rb
+++ /dev/null
@@ -1,22 +0,0 @@
-# frozen_string_literal: true
-
-class ExpireJobCacheWorker # rubocop:disable Scalability/IdempotentWorker
- include ApplicationWorker
-
- data_consistency :delayed
-
- sidekiq_options retry: 3
- include PipelineQueue
-
- queue_namespace :pipeline_cache
- urgency :high
- idempotent!
-
- def perform(job_id)
- job = CommitStatus.find_by_id(job_id)
- return unless job
-
- job.expire_etag_cache!
- ExpirePipelineCacheWorker.perform_async(job.pipeline_id)
- end
-end
diff --git a/app/workers/expire_pipeline_cache_worker.rb b/app/workers/expire_pipeline_cache_worker.rb
deleted file mode 100644
index 9a0c617da57..00000000000
--- a/app/workers/expire_pipeline_cache_worker.rb
+++ /dev/null
@@ -1,27 +0,0 @@
-# frozen_string_literal: true
-
-# rubocop: disable Scalability/IdempotentWorker
-class ExpirePipelineCacheWorker
- include ApplicationWorker
-
- sidekiq_options retry: 3
- include PipelineQueue
-
- queue_namespace :pipeline_cache
- urgency :high
- worker_resource_boundary :cpu
- data_consistency :delayed
-
- # This worker _should_ be idempotent, but due to us moving this to data_consistency :delayed
- # and an ongoing incompatibility between the two switches, we need to disable this.
- # Uncomment once https://gitlab.com/gitlab-org/gitlab/-/issues/325291 is resolved
- # idempotent!
-
- def perform(pipeline_id)
- pipeline = Ci::Pipeline.find_by_id(pipeline_id)
- return unless pipeline
-
- Ci::ExpirePipelineCacheService.new.execute(pipeline)
- end
-end
-# rubocop:enable Scalability/IdempotentWorker
diff --git a/app/workers/gitlab_service_ping_worker.rb b/app/workers/gitlab_service_ping_worker.rb
index 6cf46458b1e..0f7b3ba56a5 100644
--- a/app/workers/gitlab_service_ping_worker.rb
+++ b/app/workers/gitlab_service_ping_worker.rb
@@ -25,7 +25,25 @@ class GitlabServicePingWorker # rubocop:disable Scalability/IdempotentWorker
# Splay the request over a minute to avoid thundering herd problems.
sleep(rand(0.0..60.0).round(3))
- ServicePing::SubmitService.new.execute
+ ServicePing::SubmitService.new(payload: usage_data).execute
end
end
+
+ def usage_data
+ return unless Feature.enabled?(:prerecord_service_ping_data)
+
+ ServicePing::BuildPayload.new.execute.tap do |payload|
+ record = {
+ recorded_at: payload[:recorded_at],
+ payload: payload,
+ created_at: Time.current,
+ updated_at: Time.current
+ }
+
+ RawUsageData.upsert(record, unique_by: :recorded_at)
+ end
+ rescue StandardError => err
+ Gitlab::ErrorTracking.track_and_raise_for_dev_exception(err)
+ nil
+ end
end
diff --git a/app/workers/integrations/execute_worker.rb b/app/workers/integrations/execute_worker.rb
new file mode 100644
index 00000000000..443f1d9fe8e
--- /dev/null
+++ b/app/workers/integrations/execute_worker.rb
@@ -0,0 +1,27 @@
+# frozen_string_literal: true
+
+module Integrations
+ class ExecuteWorker # rubocop:disable Scalability/IdempotentWorker
+ include ApplicationWorker
+
+ data_consistency :always
+ sidekiq_options retry: 3
+ sidekiq_options dead: false
+ feature_category :integrations
+ urgency :low
+
+ worker_has_external_dependencies!
+
+ def perform(hook_id, data)
+ data = data.with_indifferent_access
+ integration = Integration.find_by_id(hook_id)
+ return unless integration
+
+ begin
+ integration.execute(data)
+ rescue StandardError => e
+ integration.log_exception(e)
+ end
+ end
+ end
+end
diff --git a/app/workers/integrations/irker_worker.rb b/app/workers/integrations/irker_worker.rb
new file mode 100644
index 00000000000..3152d68b372
--- /dev/null
+++ b/app/workers/integrations/irker_worker.rb
@@ -0,0 +1,193 @@
+# frozen_string_literal: true
+
+require 'json'
+require 'socket'
+require 'resolv'
+
+module Integrations
+ class IrkerWorker # rubocop:disable Scalability/IdempotentWorker
+ include ApplicationWorker
+
+ data_consistency :always
+ sidekiq_options retry: 3
+ feature_category :integrations
+ urgency :low
+
+ def perform(project_id, channels, colors, push_data, settings)
+ # Establish connection to irker server
+ return false unless start_connection(
+ settings['server_host'],
+ settings['server_port']
+ )
+
+ @project = Project.find(project_id)
+ @colors = colors
+ @channels = channels
+
+ @repo_path = @project.full_path
+ @repo_name = push_data['repository']['name']
+ @committer = push_data['user_name']
+ @branch = push_data['ref'].gsub(%r{refs/[^/]*/}, '')
+
+ if @colors
+ @repo_name = "\x0304#{@repo_name}\x0f"
+ @branch = "\x0305#{@branch}\x0f"
+ end
+
+ # First messages are for branch creation/deletion
+ send_branch_updates(push_data)
+
+ # Next messages are for commits
+ send_commits(push_data)
+
+ close_connection
+ true
+ end
+
+ private
+
+ def start_connection(irker_server, irker_port)
+ ip_address = Resolv.getaddress(irker_server)
+ # handle IP6 addresses
+ domain = Resolv::IPv6::Regex.match?(ip_address) ? "[#{ip_address}]" : ip_address
+
+ begin
+ Gitlab::UrlBlocker.validate!(
+ "irc://#{domain}",
+ allow_localhost: allow_local_requests?,
+ allow_local_network: allow_local_requests?,
+ schemes: ['irc'])
+ @socket = TCPSocket.new ip_address, irker_port
+ rescue Errno::ECONNREFUSED, Gitlab::UrlBlocker::BlockedUrlError => e
+ logger.fatal "Can't connect to Irker daemon: #{e}"
+ return false
+ end
+
+ true
+ end
+
+ def allow_local_requests?
+ Gitlab::CurrentSettings.allow_local_requests_from_web_hooks_and_services?
+ end
+
+ def send_to_irker(privmsg)
+ to_send = { to: @channels, privmsg: privmsg }
+
+ @socket.puts Gitlab::Json.dump(to_send)
+ end
+
+ def close_connection
+ @socket.close
+ end
+
+ def send_branch_updates(push_data)
+ message =
+ if Gitlab::Git.blank_ref?(push_data['before'])
+ new_branch_message
+ elsif Gitlab::Git.blank_ref?(push_data['after'])
+ delete_branch_message
+ end
+
+ send_to_irker(message)
+ end
+
+ def new_branch_message
+ newbranch = "#{Gitlab.config.gitlab.url}/#{@repo_path}/-/branches"
+ newbranch = "\x0302\x1f#{newbranch}\x0f" if @colors
+
+ "[#{@repo_name}] #{@committer} has created a new branch #{@branch}: #{newbranch}"
+ end
+
+ def delete_branch_message
+ "[#{@repo_name}] #{@committer} has deleted the branch #{@branch}"
+ end
+
+ def send_commits(push_data)
+ return if push_data['total_commits_count'] == 0
+
+ # Next message is for number of commit pushed, if any
+ if Gitlab::Git.blank_ref?(push_data['before'])
+ # Tweak on push_data["before"] in order to have a nice compare URL
+ push_data['before'] = before_on_new_branch(push_data)
+ end
+
+ send_commits_count(push_data)
+
+ # One message per commit, limited by 3 messages (same limit as the
+ # github irc hook)
+ commits = push_data['commits'].first(3)
+ commits.each do |commit_attrs|
+ send_one_commit(commit_attrs)
+ end
+ end
+
+ def before_on_new_branch(push_data)
+ commit = commit_from_id(push_data['commits'][0]['id'])
+ parents = commit.parents
+
+ # Return old value if there's no new one
+ return push_data['before'] if parents.empty?
+
+ # Or return the first parent-commit
+ parents[0].id
+ end
+
+ def send_commits_count(push_data)
+ url = compare_url(push_data['before'], push_data['after'])
+ commits = colorize_commits(push_data['total_commits_count'])
+ new_commits = 'new commit'.pluralize(push_data['total_commits_count'])
+
+ send_to_irker("[#{@repo_name}] #{@committer} pushed #{commits} #{new_commits} " \
+ "to #{@branch}: #{url}")
+ end
+
+ def compare_url(sha_before, sha_after)
+ sha1 = Commit.truncate_sha(sha_before)
+ sha2 = Commit.truncate_sha(sha_after)
+ compare_url = "#{Gitlab.config.gitlab.url}/#{@repo_path}/-/compare" \
+ "/#{sha1}...#{sha2}"
+
+ colorize_url(compare_url)
+ end
+
+ def send_one_commit(commit_attrs)
+ commit = commit_from_id(commit_attrs['id'])
+ sha = colorize_sha(Commit.truncate_sha(commit_attrs['id']))
+ author = commit_attrs['author']['name']
+ files = colorize_nb_files(files_count(commit))
+ title = commit.title
+
+ send_to_irker("#{@repo_name}/#{@branch} #{sha} #{author} (#{files}): #{title}")
+ end
+
+ def commit_from_id(id)
+ @project.commit(id)
+ end
+
+ def files_count(commit)
+ diff_size = commit.raw_deltas.size
+
+ "#{diff_size} file".pluralize(diff_size)
+ end
+
+ def colorize_sha(sha)
+ sha = "\x0314#{sha}\x0f" if @colors
+ sha
+ end
+
+ def colorize_nb_files(nb_files)
+ nb_files = "\x0312#{nb_files}\x0f" if @colors
+ nb_files
+ end
+
+ def colorize_url(url)
+ url = "\x0302\x1f#{url}\x0f" if @colors
+ url
+ end
+
+ def colorize_commits(commits)
+ commits = "\x02#{commits}\x0f" if @colors
+ commits
+ end
+ end
+end
diff --git a/app/workers/irker_worker.rb b/app/workers/irker_worker.rb
index 4f51bb69b8c..a054021e418 100644
--- a/app/workers/irker_worker.rb
+++ b/app/workers/irker_worker.rb
@@ -1,189 +1,9 @@
# frozen_string_literal: true
-require 'json'
-require 'socket'
-require 'resolv'
-
-class IrkerWorker # rubocop:disable Scalability/IdempotentWorker
- include ApplicationWorker
-
- data_consistency :always
- sidekiq_options retry: 3
- feature_category :integrations
- urgency :low
-
- def perform(project_id, channels, colors, push_data, settings)
- # Establish connection to irker server
- return false unless start_connection(settings['server_host'],
- settings['server_port'])
-
- @project = Project.find(project_id)
- @colors = colors
- @channels = channels
-
- @repo_path = @project.full_path
- @repo_name = push_data['repository']['name']
- @committer = push_data['user_name']
- @branch = push_data['ref'].gsub(%r'refs/[^/]*/', '')
-
- if @colors
- @repo_name = "\x0304#{@repo_name}\x0f"
- @branch = "\x0305#{@branch}\x0f"
- end
-
- # First messages are for branch creation/deletion
- send_branch_updates(push_data)
-
- # Next messages are for commits
- send_commits(push_data)
-
- close_connection
- true
- end
-
- private
-
- def start_connection(irker_server, irker_port)
- ip_address = Resolv.getaddress(irker_server)
- # handle IP6 addresses
- domain = Resolv::IPv6::Regex.match?(ip_address) ? "[#{ip_address}]" : ip_address
-
- begin
- Gitlab::UrlBlocker.validate!(
- "irc://#{domain}",
- allow_localhost: allow_local_requests?,
- allow_local_network: allow_local_requests?,
- schemes: ['irc'])
- @socket = TCPSocket.new ip_address, irker_port
- rescue Errno::ECONNREFUSED, Gitlab::UrlBlocker::BlockedUrlError => e
- logger.fatal "Can't connect to Irker daemon: #{e}"
- return false
- end
-
- true
- end
-
- def allow_local_requests?
- Gitlab::CurrentSettings.allow_local_requests_from_web_hooks_and_services?
- end
-
- def send_to_irker(privmsg)
- to_send = { to: @channels, privmsg: privmsg }
-
- @socket.puts Gitlab::Json.dump(to_send)
- end
-
- def close_connection
- @socket.close
- end
-
- def send_branch_updates(push_data)
- message =
- if Gitlab::Git.blank_ref?(push_data['before'])
- new_branch_message
- elsif Gitlab::Git.blank_ref?(push_data['after'])
- delete_branch_message
- end
-
- send_to_irker(message)
- end
-
- def new_branch_message
- newbranch = "#{Gitlab.config.gitlab.url}/#{@repo_path}/-/branches"
- newbranch = "\x0302\x1f#{newbranch}\x0f" if @colors
-
- "[#{@repo_name}] #{@committer} has created a new branch #{@branch}: #{newbranch}"
- end
-
- def delete_branch_message
- "[#{@repo_name}] #{@committer} has deleted the branch #{@branch}"
- end
-
- def send_commits(push_data)
- return if push_data['total_commits_count'] == 0
-
- # Next message is for number of commit pushed, if any
- if Gitlab::Git.blank_ref?(push_data['before'])
- # Tweak on push_data["before"] in order to have a nice compare URL
- push_data['before'] = before_on_new_branch(push_data)
- end
-
- send_commits_count(push_data)
-
- # One message per commit, limited by 3 messages (same limit as the
- # github irc hook)
- commits = push_data['commits'].first(3)
- commits.each do |commit_attrs|
- send_one_commit(commit_attrs)
- end
- end
-
- def before_on_new_branch(push_data)
- commit = commit_from_id(push_data['commits'][0]['id'])
- parents = commit.parents
-
- # Return old value if there's no new one
- return push_data['before'] if parents.empty?
-
- # Or return the first parent-commit
- parents[0].id
- end
-
- def send_commits_count(push_data)
- url = compare_url(push_data['before'], push_data['after'])
- commits = colorize_commits(push_data['total_commits_count'])
- new_commits = 'new commit'.pluralize(push_data['total_commits_count'])
-
- send_to_irker("[#{@repo_name}] #{@committer} pushed #{commits} #{new_commits} " \
- "to #{@branch}: #{url}")
- end
-
- def compare_url(sha_before, sha_after)
- sha1 = Commit.truncate_sha(sha_before)
- sha2 = Commit.truncate_sha(sha_after)
- compare_url = "#{Gitlab.config.gitlab.url}/#{@repo_path}/-/compare" \
- "/#{sha1}...#{sha2}"
-
- colorize_url(compare_url)
- end
-
- def send_one_commit(commit_attrs)
- commit = commit_from_id(commit_attrs['id'])
- sha = colorize_sha(Commit.truncate_sha(commit_attrs['id']))
- author = commit_attrs['author']['name']
- files = colorize_nb_files(files_count(commit))
- title = commit.title
-
- send_to_irker("#{@repo_name}/#{@branch} #{sha} #{author} (#{files}): #{title}")
- end
-
- def commit_from_id(id)
- @project.commit(id)
- end
-
- def files_count(commit)
- diff_size = commit.raw_deltas.size
-
- "#{diff_size} file".pluralize(diff_size)
- end
-
- def colorize_sha(sha)
- sha = "\x0314#{sha}\x0f" if @colors
- sha
- end
-
- def colorize_nb_files(nb_files)
- nb_files = "\x0312#{nb_files}\x0f" if @colors
- nb_files
- end
-
- def colorize_url(url)
- url = "\x0302\x1f#{url}\x0f" if @colors
- url
- end
-
- def colorize_commits(commits)
- commits = "\x02#{commits}\x0f" if @colors
- commits
- end
+# This worker was renamed in 15.1, we can delete it in 15.2.
+# See: https://gitlab.com/gitlab-org/gitlab/-/issues/364112
+#
+# rubocop: disable Gitlab/NamespacedClass
+# rubocop:disable Scalability/IdempotentWorker
+class IrkerWorker < Integrations::IrkerWorker
end
diff --git a/app/workers/issue_placement_worker.rb b/app/workers/issue_placement_worker.rb
deleted file mode 100644
index 26dec221f45..00000000000
--- a/app/workers/issue_placement_worker.rb
+++ /dev/null
@@ -1,71 +0,0 @@
-# frozen_string_literal: true
-
-# DEPRECATED. Will be removed in 14.7 https://gitlab.com/gitlab-org/gitlab/-/merge_requests/72803
-# Please use Issues::PlacementWorker instead
-#
-# todo: remove this worker and it's queue definition from all_queues after Issues::PlacementWorker is deployed
-# We want to keep it for one release in case some jobs are already scheduled in the old queue so we need the worker
-# to be available to finish those. All new jobs will be queued into the new queue.
-class IssuePlacementWorker
- include ApplicationWorker
-
- data_consistency :always
-
- sidekiq_options retry: 3
-
- idempotent!
- deduplicate :until_executed, including_scheduled: true
- feature_category :team_planning
- urgency :high
- worker_resource_boundary :cpu
- weight 2
-
- # Move at most the most recent 100 issues
- QUERY_LIMIT = 100
-
- # rubocop: disable CodeReuse/ActiveRecord
- def perform(issue_id, project_id = nil)
- issue = find_issue(issue_id, project_id)
- return unless issue
-
- # Temporary disable moving null elements because of performance problems
- # For more information check https://gitlab.com/gitlab-com/gl-infra/production/-/issues/4321
- return if issue.blocked_for_repositioning?
-
- # Move the oldest 100 unpositioned items to the end.
- # This is to deal with out-of-order execution of the worker,
- # while preserving creation order.
- to_place = Issue
- .relative_positioning_query_base(issue)
- .with_null_relative_position
- .order({ created_at: :asc }, { id: :asc })
- .limit(QUERY_LIMIT + 1)
- .to_a
-
- leftover = to_place.pop if to_place.count > QUERY_LIMIT
-
- Issue.move_nulls_to_end(to_place)
- Issues::BaseService.new(project: nil).rebalance_if_needed(to_place.max_by(&:relative_position))
- Issues::PlacementWorker.perform_async(nil, leftover.project_id) if leftover.present?
- rescue RelativePositioning::NoSpaceLeft => e
- Gitlab::ErrorTracking.log_exception(e, issue_id: issue_id, project_id: project_id)
- Issues::RebalancingWorker.perform_async(nil, *root_namespace_id_to_rebalance(issue, project_id))
- end
-
- def find_issue(issue_id, project_id)
- return Issue.id_in(issue_id).take if issue_id
-
- project = Project.id_in(project_id).take
- return unless project
-
- project.issues.take
- end
- # rubocop: enable CodeReuse/ActiveRecord
-
- private
-
- def root_namespace_id_to_rebalance(issue, project_id)
- project_id = project_id.presence || issue.project_id
- Project.find(project_id)&.self_or_root_group_ids
- end
-end
diff --git a/app/workers/issue_rebalancing_worker.rb b/app/workers/issue_rebalancing_worker.rb
deleted file mode 100644
index 73edb2eb653..00000000000
--- a/app/workers/issue_rebalancing_worker.rb
+++ /dev/null
@@ -1,56 +0,0 @@
-# frozen_string_literal: true
-
-# DEPRECATED. Will be removed in 14.7 https://gitlab.com/gitlab-org/gitlab/-/merge_requests/72803
-# Please use Issues::RebalancingWorker instead
-#
-# todo: remove this worker and it's queue definition from all_queues after Issue::RebalancingWorker is released.
-# We want to keep it for one release in case some jobs are already scheduled in the old queue so we need the worker
-# to be available to finish those. All new jobs will be queued into the new queue.
-class IssueRebalancingWorker
- include ApplicationWorker
-
- data_consistency :always
-
- sidekiq_options retry: 3
-
- idempotent!
- urgency :low
- feature_category :team_planning
- deduplicate :until_executed, including_scheduled: true
-
- def perform(ignore = nil, project_id = nil, root_namespace_id = nil)
- # we need to have exactly one of the project_id and root_namespace_id params be non-nil
- raise ArgumentError, "Expected only one of the params project_id: #{project_id} and root_namespace_id: #{root_namespace_id}" if project_id && root_namespace_id
- return if project_id.nil? && root_namespace_id.nil?
- return if ::Gitlab::Issues::Rebalancing::State.rebalance_recently_finished?(project_id, root_namespace_id)
-
- # pull the projects collection to be rebalanced either the project if namespace is not a group(i.e. user namesapce)
- # or the root namespace, this also makes the worker backward compatible with previous version where a project_id was
- # passed as the param
- projects_to_rebalance = projects_collection(project_id, root_namespace_id)
-
- # something might have happened with the namespace between scheduling the worker and actually running it,
- # maybe it was removed.
- if projects_to_rebalance.blank?
- Gitlab::ErrorTracking.log_exception(
- ArgumentError.new("Projects to be rebalanced not found for arguments: project_id #{project_id}, root_namespace_id: #{root_namespace_id}"),
- { project_id: project_id, root_namespace_id: root_namespace_id })
-
- return
- end
-
- Issues::RelativePositionRebalancingService.new(projects_to_rebalance).execute
- rescue Issues::RelativePositionRebalancingService::TooManyConcurrentRebalances => e
- Gitlab::ErrorTracking.log_exception(e, root_namespace_id: root_namespace_id, project_id: project_id)
- end
-
- private
-
- def projects_collection(project_id, root_namespace_id)
- # we can have either project_id(older version) or project_id if project is part of a user namespace and not a group
- # or root_namespace_id(newer version) never both.
- return Project.id_in([project_id]) if project_id
-
- Namespace.find_by_id(root_namespace_id)&.all_projects
- end
-end
diff --git a/app/workers/loose_foreign_keys/cleanup_worker.rb b/app/workers/loose_foreign_keys/cleanup_worker.rb
index ecece92ec1b..0d04c503fbf 100644
--- a/app/workers/loose_foreign_keys/cleanup_worker.rb
+++ b/app/workers/loose_foreign_keys/cleanup_worker.rb
@@ -7,7 +7,7 @@ module LooseForeignKeys
include CronjobQueue # rubocop: disable Scalability/CronWorkerContext
sidekiq_options retry: false
- feature_category :sharding
+ feature_category :pods
data_consistency :always
idempotent!
diff --git a/app/workers/merge_requests/create_pipeline_worker.rb b/app/workers/merge_requests/create_pipeline_worker.rb
index ee42a3dee08..b40408cf647 100644
--- a/app/workers/merge_requests/create_pipeline_worker.rb
+++ b/app/workers/merge_requests/create_pipeline_worker.rb
@@ -15,7 +15,7 @@ module MergeRequests
worker_resource_boundary :cpu
idempotent!
- def perform(project_id, user_id, merge_request_id)
+ def perform(project_id, user_id, merge_request_id, params = {})
project = Project.find_by_id(project_id)
return unless project
@@ -25,7 +25,12 @@ module MergeRequests
merge_request = MergeRequest.find_by_id(merge_request_id)
return unless merge_request
- MergeRequests::CreatePipelineService.new(project: project, current_user: user).execute(merge_request)
+ push_options = params.with_indifferent_access[:push_options]
+
+ MergeRequests::CreatePipelineService
+ .new(project: project, current_user: user, params: { push_options: push_options })
+ .execute(merge_request)
+
merge_request.update_head_pipeline
end
end
diff --git a/app/workers/merge_requests/update_head_pipeline_worker.rb b/app/workers/merge_requests/update_head_pipeline_worker.rb
index acebf5fc767..bc3a289c1e1 100644
--- a/app/workers/merge_requests/update_head_pipeline_worker.rb
+++ b/app/workers/merge_requests/update_head_pipeline_worker.rb
@@ -14,7 +14,7 @@ module MergeRequests
def handle_event(event)
Ci::Pipeline.find_by_id(event.data[:pipeline_id]).try do |pipeline|
pipeline.all_merge_requests.opened.each do |merge_request|
- UpdateHeadPipelineForMergeRequestWorker.perform_async(merge_request.id)
+ merge_request.update_head_pipeline
end
end
end
diff --git a/app/workers/namespaceless_project_destroy_worker.rb b/app/workers/namespaceless_project_destroy_worker.rb
deleted file mode 100644
index c2ed379be48..00000000000
--- a/app/workers/namespaceless_project_destroy_worker.rb
+++ /dev/null
@@ -1,42 +0,0 @@
-# frozen_string_literal: true
-
-# Worker to destroy projects that do not have a namespace
-#
-# It destroys everything it can without having the info about the namespace it
-# used to belong to. Projects in this state should be rare.
-# The worker will reject doing anything for projects that *do* have a
-# namespace. For those use ProjectDestroyWorker instead.
-class NamespacelessProjectDestroyWorker # rubocop:disable Scalability/IdempotentWorker
- include ApplicationWorker
-
- data_consistency :always
-
- sidekiq_options retry: 3
- include ExceptionBacktrace
-
- feature_category :authentication_and_authorization
-
- def perform(project_id)
- begin
- project = Project.unscoped.find(project_id)
- rescue ActiveRecord::RecordNotFound
- return
- end
-
- return if project.namespace # Reject doing anything for projects that *do* have a namespace
-
- project.team.truncate
-
- unlink_fork(project) if project.forked?
-
- project.destroy!
- end
-
- private
-
- def unlink_fork(project)
- merge_requests = project.forked_from_project.merge_requests.opened.from_project(project)
-
- merge_requests.update_all(state_id: MergeRequest.available_states[:closed])
- end
-end
diff --git a/app/workers/namespaces/process_sync_events_worker.rb b/app/workers/namespaces/process_sync_events_worker.rb
index 269710dd804..36c4ab2058d 100644
--- a/app/workers/namespaces/process_sync_events_worker.rb
+++ b/app/workers/namespaces/process_sync_events_worker.rb
@@ -9,11 +9,11 @@ module Namespaces
data_consistency :always
- feature_category :sharding
+ feature_category :pods
urgency :high
idempotent!
- deduplicate :until_executing
+ deduplicate :until_executed
def perform
results = ::Ci::ProcessSyncEventsService.new(
diff --git a/app/workers/pages_transfer_worker.rb b/app/workers/pages_transfer_worker.rb
index 404c79b9e89..6d3918e7ab6 100644
--- a/app/workers/pages_transfer_worker.rb
+++ b/app/workers/pages_transfer_worker.rb
@@ -13,12 +13,8 @@ class PagesTransferWorker # rubocop:disable Scalability/IdempotentWorker
loggable_arguments 0, 1
def perform(method, args)
- return unless Gitlab::PagesTransfer::METHODS.include?(method)
-
- result = Gitlab::PagesTransfer.new.public_send(method, *args) # rubocop:disable GitlabSecurity/PublicSend
-
- # If result isn't truthy, the move failed. Promote this to an
- # exception so that it will be logged and retried appropriately
- raise TransferFailedError unless result
+ # noop
+ # This worker is not necessary anymore and will be removed
+ # https://gitlab.com/gitlab-org/gitlab/-/issues/340616
end
end
diff --git a/app/workers/pipeline_hooks_worker.rb b/app/workers/pipeline_hooks_worker.rb
index eb5d0086592..800cf50e732 100644
--- a/app/workers/pipeline_hooks_worker.rb
+++ b/app/workers/pipeline_hooks_worker.rb
@@ -13,6 +13,7 @@ class PipelineHooksWorker # rubocop:disable Scalability/IdempotentWorker
def perform(pipeline_id)
pipeline = Ci::Pipeline.find_by_id(pipeline_id)
return unless pipeline
+ return if pipeline.user&.blocked?
Ci::Pipelines::HookService.new(pipeline).execute
end
diff --git a/app/workers/pipeline_notification_worker.rb b/app/workers/pipeline_notification_worker.rb
index 640f3494d58..2ed2e2ff1d0 100644
--- a/app/workers/pipeline_notification_worker.rb
+++ b/app/workers/pipeline_notification_worker.rb
@@ -23,6 +23,7 @@ class PipelineNotificationWorker # rubocop:disable Scalability/IdempotentWorker
pipeline = Ci::Pipeline.find_by_id(pipeline_id)
return unless pipeline
+ return if pipeline.user&.blocked?
NotificationService.new.pipeline_finished(pipeline, ref_status: ref_status, recipients: recipients)
end
diff --git a/app/workers/project_daily_statistics_worker.rb b/app/workers/project_daily_statistics_worker.rb
deleted file mode 100644
index 02f8958f82a..00000000000
--- a/app/workers/project_daily_statistics_worker.rb
+++ /dev/null
@@ -1,20 +0,0 @@
-# frozen_string_literal: true
-
-# Deprecated: https://gitlab.com/gitlab-org/gitlab/-/issues/214585
-class ProjectDailyStatisticsWorker # rubocop:disable Scalability/IdempotentWorker
- include ApplicationWorker
-
- data_consistency :always
-
- sidekiq_options retry: 3
-
- feature_category :source_code_management
-
- def perform(project_id)
- project = Project.find_by_id(project_id)
-
- return unless project&.repository&.exists?
-
- Projects::FetchStatisticsIncrementService.new(project).execute
- end
-end
diff --git a/app/workers/project_service_worker.rb b/app/workers/project_service_worker.rb
index f73958a6ef9..56ac4bc046a 100644
--- a/app/workers/project_service_worker.rb
+++ b/app/workers/project_service_worker.rb
@@ -1,8 +1,11 @@
# frozen_string_literal: true
-class ProjectServiceWorker # rubocop:disable Scalability/IdempotentWorker
- include ApplicationWorker
-
+# This worker was renamed in 15.1, we can delete it in 15.2.
+# See: https://gitlab.com/gitlab-org/gitlab/-/issues/364112
+#
+# rubocop: disable Gitlab/NamespacedClass
+# rubocop: disable Scalability/IdempotentWorker
+class ProjectServiceWorker < Integrations::ExecuteWorker
data_consistency :always
sidekiq_options retry: 3
sidekiq_options dead: false
@@ -10,16 +13,4 @@ class ProjectServiceWorker # rubocop:disable Scalability/IdempotentWorker
urgency :low
worker_has_external_dependencies!
-
- def perform(hook_id, data)
- data = data.with_indifferent_access
- integration = Integration.find_by_id(hook_id)
- return unless integration
-
- begin
- integration.execute(data)
- rescue StandardError => error
- integration.log_exception(error)
- end
- end
end
diff --git a/app/workers/projects/inactive_projects_deletion_cron_worker.rb b/app/workers/projects/inactive_projects_deletion_cron_worker.rb
index 2c3f4191502..a280c9203d6 100644
--- a/app/workers/projects/inactive_projects_deletion_cron_worker.rb
+++ b/app/workers/projects/inactive_projects_deletion_cron_worker.rb
@@ -9,34 +9,53 @@ module Projects
idempotent!
data_consistency :always
feature_category :compliance_management
+ urgency :low
- INTERVAL = 2.seconds.to_i
+ # This cron worker is executed at an interval of 10 minutes.
+ # Maximum run time is kept as 4 minutes to avoid breaching maximum allowed execution latency of 5 minutes.
+ MAX_RUN_TIME = 4.minutes
+ LAST_PROCESSED_INACTIVE_PROJECT_REDIS_KEY = 'last_processed_inactive_project_id'
+
+ TimeoutError = Class.new(StandardError)
def perform
return unless ::Gitlab::CurrentSettings.delete_inactive_projects?
+ @start_time ||= ::Gitlab::Metrics::System.monotonic_time
admin_user = User.admins.active.first
return unless admin_user
notified_inactive_projects = Gitlab::InactiveProjectsDeletionWarningTracker.notified_projects
- Project.inactive.without_deleted.find_each(batch_size: 100).with_index do |project, index| # rubocop: disable CodeReuse/ActiveRecord
- next unless Feature.enabled?(:inactive_projects_deletion, project.root_namespace)
+ project_id = last_processed_project_id
+
+ Project.where('projects.id > ?', project_id).each_batch(of: 100) do |batch| # rubocop: disable CodeReuse/ActiveRecord
+ inactive_projects = batch.inactive.without_deleted
+
+ inactive_projects.each do |project|
+ if over_time?
+ save_last_processed_project_id(project.id)
+ raise TimeoutError
+ end
- delay = index * INTERVAL
+ next unless Feature.enabled?(:inactive_projects_deletion, project.root_namespace)
- with_context(project: project, user: admin_user) do
- deletion_warning_email_sent_on = notified_inactive_projects["project:#{project.id}"]
+ with_context(project: project, user: admin_user) do
+ deletion_warning_email_sent_on = notified_inactive_projects["project:#{project.id}"]
- if send_deletion_warning_email?(deletion_warning_email_sent_on, project)
- send_notification(delay, project, admin_user)
- elsif deletion_warning_email_sent_on && delete_due_to_inactivity?(deletion_warning_email_sent_on)
- Gitlab::InactiveProjectsDeletionWarningTracker.new(project.id).reset
- delete_project(project, admin_user)
+ if send_deletion_warning_email?(deletion_warning_email_sent_on, project)
+ send_notification(project, admin_user)
+ elsif deletion_warning_email_sent_on && delete_due_to_inactivity?(deletion_warning_email_sent_on)
+ Gitlab::InactiveProjectsDeletionWarningTracker.new(project.id).reset
+ delete_project(project, admin_user)
+ end
end
end
end
+ reset_last_processed_project_id
+ rescue TimeoutError
+ # no-op
end
private
@@ -64,8 +83,30 @@ module Projects
::Projects::DestroyService.new(project, user, {}).async_execute
end
- def send_notification(delay, project, user)
- ::Projects::InactiveProjectsDeletionNotificationWorker.perform_in(delay, project.id, deletion_date)
+ def send_notification(project, user)
+ ::Projects::InactiveProjectsDeletionNotificationWorker.perform_async(project.id, deletion_date)
+ end
+
+ def over_time?
+ (::Gitlab::Metrics::System.monotonic_time - @start_time) > MAX_RUN_TIME
+ end
+
+ def save_last_processed_project_id(project_id)
+ Gitlab::Redis::Cache.with do |redis|
+ redis.set(LAST_PROCESSED_INACTIVE_PROJECT_REDIS_KEY, project_id)
+ end
+ end
+
+ def last_processed_project_id
+ Gitlab::Redis::Cache.with do |redis|
+ redis.get(LAST_PROCESSED_INACTIVE_PROJECT_REDIS_KEY).to_i
+ end
+ end
+
+ def reset_last_processed_project_id
+ Gitlab::Redis::Cache.with do |redis|
+ redis.del(LAST_PROCESSED_INACTIVE_PROJECT_REDIS_KEY)
+ end
end
end
end
diff --git a/app/workers/projects/process_sync_events_worker.rb b/app/workers/projects/process_sync_events_worker.rb
index 1330ae47a68..92322a9ea99 100644
--- a/app/workers/projects/process_sync_events_worker.rb
+++ b/app/workers/projects/process_sync_events_worker.rb
@@ -9,11 +9,11 @@ module Projects
data_consistency :always
- feature_category :sharding
+ feature_category :pods
urgency :high
idempotent!
- deduplicate :until_executing
+ deduplicate :until_executed
def perform
results = ::Ci::ProcessSyncEventsService.new(
diff --git a/app/workers/prometheus/create_default_alerts_worker.rb b/app/workers/prometheus/create_default_alerts_worker.rb
deleted file mode 100644
index 1a0fe7e8d56..00000000000
--- a/app/workers/prometheus/create_default_alerts_worker.rb
+++ /dev/null
@@ -1,19 +0,0 @@
-# frozen_string_literal: true
-
-module Prometheus
- class CreateDefaultAlertsWorker
- include ApplicationWorker
-
- data_consistency :always
-
- sidekiq_options retry: 3
-
- feature_category :incident_management
- urgency :high
- idempotent!
-
- def perform(project_id)
- # No-op Will be removed in https://gitlab.com/gitlab-org/gitlab/-/issues/360756
- end
- end
-end
diff --git a/app/workers/repository_remove_remote_worker.rb b/app/workers/repository_remove_remote_worker.rb
deleted file mode 100644
index c95393e7d21..00000000000
--- a/app/workers/repository_remove_remote_worker.rb
+++ /dev/null
@@ -1,35 +0,0 @@
-# frozen_string_literal: true
-
-class RepositoryRemoveRemoteWorker # rubocop:disable Scalability/IdempotentWorker
- include ApplicationWorker
-
- data_consistency :always
-
- sidekiq_options retry: 3
- include ExclusiveLeaseGuard
-
- feature_category :source_code_management
- loggable_arguments 1
-
- LEASE_TIMEOUT = 1.hour
-
- attr_reader :project, :remote_name
-
- def perform(project_id, remote_name)
- # On-disk remotes are slated for removal, and GitLab doesn't create any of
- # them anymore. For backwards compatibility, we need to keep the worker
- # though such that we can be sure to drain all jobs on an update. Making
- # this a no-op is fine though: the worst that can happen is that we still
- # have old remotes lingering in the repository's config, but Gitaly will
- # start to clean these up in repository maintenance.
- # https://gitlab.com/gitlab-org/gitlab/-/issues/336745
- end
-
- def lease_timeout
- LEASE_TIMEOUT
- end
-
- def lease_key
- "remove_remote_#{project.id}_#{remote_name}"
- end
-end
diff --git a/app/workers/schedule_merge_request_cleanup_refs_worker.rb b/app/workers/schedule_merge_request_cleanup_refs_worker.rb
index b3d0067471a..8099c3d56b6 100644
--- a/app/workers/schedule_merge_request_cleanup_refs_worker.rb
+++ b/app/workers/schedule_merge_request_cleanup_refs_worker.rb
@@ -14,6 +14,7 @@ class ScheduleMergeRequestCleanupRefsWorker
return if Gitlab::Database.read_only?
return unless Feature.enabled?(:merge_request_refs_cleanup)
+ MergeRequest::CleanupSchedule.stuck_retry!
MergeRequestCleanupRefsWorker.perform_with_capacity
end
end
diff --git a/app/workers/terraform/states/destroy_worker.rb b/app/workers/terraform/states/destroy_worker.rb
new file mode 100644
index 00000000000..48abf0f22b8
--- /dev/null
+++ b/app/workers/terraform/states/destroy_worker.rb
@@ -0,0 +1,23 @@
+# frozen_string_literal: true
+
+module Terraform
+ module States
+ class DestroyWorker
+ include ApplicationWorker
+
+ queue_namespace :terraform
+ feature_category :infrastructure_as_code
+
+ deduplicate :until_executed
+ idempotent!
+ urgency :low
+ data_consistency :always
+
+ def perform(terraform_state_id)
+ if state = Terraform::State.find_by_id(terraform_state_id)
+ Terraform::States::DestroyService.new(state).execute
+ end
+ end
+ end
+ end
+end
diff --git a/app/workers/update_merge_requests_worker.rb b/app/workers/update_merge_requests_worker.rb
index 5c96257cb63..eb69c0eaba6 100644
--- a/app/workers/update_merge_requests_worker.rb
+++ b/app/workers/update_merge_requests_worker.rb
@@ -13,13 +13,17 @@ class UpdateMergeRequestsWorker # rubocop:disable Scalability/IdempotentWorker
weight 3
loggable_arguments 2, 3, 4
- def perform(project_id, user_id, oldrev, newrev, ref)
+ def perform(project_id, user_id, oldrev, newrev, ref, params = {})
project = Project.find_by_id(project_id)
return unless project
user = User.find_by_id(user_id)
return unless user
- MergeRequests::RefreshService.new(project: project, current_user: user).execute(oldrev, newrev, ref)
+ push_options = params.with_indifferent_access[:push_options]
+
+ MergeRequests::RefreshService
+ .new(project: project, current_user: user, params: { push_options: push_options })
+ .execute(oldrev, newrev, ref)
end
end
diff --git a/app/workers/web_hooks/destroy_worker.rb b/app/workers/web_hooks/destroy_worker.rb
index 822a1e770d7..8f9b194f88a 100644
--- a/app/workers/web_hooks/destroy_worker.rb
+++ b/app/workers/web_hooks/destroy_worker.rb
@@ -4,6 +4,8 @@ module WebHooks
class DestroyWorker
include ApplicationWorker
+ DestroyError = Class.new(StandardError)
+
data_consistency :always
sidekiq_options retry: 3
feature_category :integrations
@@ -19,12 +21,7 @@ module WebHooks
result = ::WebHooks::DestroyService.new(user).sync_destroy(hook)
- return result if result[:status] == :success
-
- e = ::WebHooks::DestroyService::DestroyError.new(result[:message])
- Gitlab::ErrorTracking.track_exception(e, web_hook_id: hook.id)
-
- raise e
+ result.track_and_raise_exception(as: DestroyError, web_hook_id: hook.id)
end
end
end
diff --git a/app/workers/web_hooks/log_destroy_worker.rb b/app/workers/web_hooks/log_destroy_worker.rb
new file mode 100644
index 00000000000..9ea5c70e416
--- /dev/null
+++ b/app/workers/web_hooks/log_destroy_worker.rb
@@ -0,0 +1,24 @@
+# frozen_string_literal: true
+
+module WebHooks
+ class LogDestroyWorker
+ include ApplicationWorker
+
+ DestroyError = Class.new(StandardError)
+
+ data_consistency :always
+ feature_category :integrations
+ urgency :low
+
+ idempotent!
+
+ def perform(params = {})
+ hook_id = params['hook_id']
+ return unless hook_id
+
+ result = ::WebHooks::LogDestroyService.new(hook_id).execute
+
+ result.track_and_raise_exception(as: DestroyError, web_hook_id: hook_id)
+ end
+ end
+end