Convert delete handling into a queue

Created on 1 December 2023, 12 months ago
Updated 12 December 2023, 12 months ago

Problem/Motivation

Unlike pull-update and pull-create handling, pull-delete handling relies on an unqueued query to process deletes from Salesforce.

This can lead to a number of potential problems including cron timeouts. In addition, this limits extensibility for things like merge handling.

Proposed resolution

Pull-delete handling should use a queue mechanism, like \Drupal\salesforce_pull\QueueHandler

This will be a 2-part deployment, due to significant changes in delete handling logic as well as API changes.
Part 1: push a tag release e.g. 5.0.4 with deprecation notices.
Part 2: push a minor release e.g. 5.1.0 with deprecated code removed
Q: Should this be a major release e.g. 6.0.0 instead?

Remaining tasks

  • Implement "failed pull" to mark queue items perma-failed, similar to push queue
  • Update and create tests
  • Create change record(s) and release notes

User interface changes

- None

API changes

- New QueueProcessor service to extend DatabaseQueue core class
- Deprecate DeleteHandler, salesforce_pull.delete_handler service
- Deprecate class const QueueHandler::PULL_QUEUE_NAME
- Deprecate old CronPull class

Data model changes

- Additional metadata fields on pull queue items

πŸ“Œ Task
Status

Needs work

Version

5.0

Component

salesforce_pull.module

Created by

πŸ‡ΊπŸ‡ΈUnited States AaronBauman Philadelphia

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Merge Requests

Comments & Activities

Production build 0.71.5 2024