Skip to content

Propagation check blocks next article processing and reduces upload throughput #184

@Oleekae

Description

@Oleekae

The title speaks for itself. If that’s the case, I now understand why Postie’s upload performance is slow compared to Nyuu’s under the same environment and similar settings.

Summary

When propagation checking is enabled, Postie appears to wait for the propagation delay/check of the current article before processing the next article.

This means the propagation check acts as a blocking step in the upload pipeline, which significantly reduces throughput.

From what I can see, the workflow is effectively:

  1. Upload article A
  2. Wait for the configured propagation delay
  3. Check propagation for article A
  4. Only then continue with article B

So if the propagation check delay is set to 5 seconds, Postie may spend those 5 seconds idle before moving on to the next article.

In practice, this introduces a pause between articles and slows down large uploads considerably.

Expected behavior

Uploading the next article should not be blocked by the propagation check of the previous one.

A better model would be:

  • Upload pipeline continues processing the next articles
  • Propagation check pipeline runs independently in the background after the configured delay

Example:

  1. Upload article A
  2. Schedule propagation check for article A after N seconds
  3. Immediately continue uploading article B
  4. A separate worker/task performs the propagation check for article A when its delay expires

Why this would help

This would avoid introducing artificial idle time between article uploads.

Benefits:

  • Better overall throughput
  • Less impact from propagation delay settings
  • More efficient use of upload connections/workers
  • Better performance on large posts with many articles

Suggested implementation idea

Consider decoupling:

  • the article upload queue
  • from the propagation verification queue

For example:

  • once an article is uploaded, it is placed into a pending propagation checks queue
  • a separate worker pool performs propagation checks asynchronously after the configured delay
  • the upload pipeline remains free to continue processing subsequent articles

This could also be configurable, for example:

  • max concurrent propagation checks
  • max pending checks in queue
  • whether propagation failures should pause uploads or only mark articles for retry/failure handling

Problem impact

With the current behavior, the propagation delay seems to become a global bottleneck.

If propagation delay is set to 5 seconds, each article may effectively incur that delay before the next one is processed, which can drastically slow down posting speed.

Request

Would it be possible to make propagation verification asynchronous / parallel so that propagation checks do not block processing of the next article?

That would preserve the safety/verification logic while avoiding unnecessary slowdown in the main upload pipeline.

Many thanks for your time and dedication in continuing to develop the wonderful Postie.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions