0

Recently I came across a request from my client that they often get publishing queued. When we are in initial stage we only have few sites any very minimal users who is working on our CM. But currently we have a huge number of sites and vast number of users who working on a single instance. So whenever a user publishes an item it often ends with publishing queues since some one is already initiated a publishing.

Is there any alternative approach to handle this situation where allowing concurrent users to publish their items without queuing.

I read an article of parallel publishing from Sitecore . But this doesn't fulfill my above requirement. Can someone suggest an idea for it. The version that we are using is Sitecore 8.1

Thanks in advance

  • Is upgrading an option? Just asking because the Sitecore Publishing Service could be what you are looking for, but that is not available for 8.1.. – Gatogordo Jan 9 '19 at 19:52
  • Yeah we are using it on another project. But this scenario is only specific to 8.1 and we not supposed to upgrade it to higher version. – Gowtham Eswaramoorthy Jan 9 '19 at 20:01
1

Sitecore has released on 8.2 the publishing service which is not built into the product but it's a service that works really well for that. This is more as an FYI.

But you said you are running on 8.1 so the only way you can get around that is by establishing processes if upgrading is not an option.

For example do all of those users need publishing permissions?

Can you have a role and assign to key users to trigger the publish avoiding the trigger to be pushed at the same time?

Can you have a publish scheduled task which pushes content live at a specific time?

Do you have workflow properly setup which as the last step triggers a publish?

There are all things you can look into and explore but in a nutshell for Sitecore 8.1 and lower versions you are stuck with the out of the box publishing system which behaves exactly like you described.

Update:

If you trigger a publish programatically through the publish manager(custom processor or a simple call to it) your call will end up at some point creating the publish job and setting the jobstate to queued.

Here is the method that does that(cleaned up for clarity):

PublishStatus publishStatus = new PublishStatus();
  JobOptions options1 = new JobOptions(nameof (Publish), this.publishManager.GetType().Name, "publisher", (object) this.publishManager, "DoPublish", new object[2]
  {
    (object) options,
    (object) publishStatus
  });

  options1.AfterLife = TimeSpan.FromMilliseconds((double) (Settings.Publishing.PublishDialogPollingInterval * 2));
  options1.ExecuteInManagedThreadPool = Settings.Publishing.ExecuteInManagedThreadPool;
  publishStatus.SetState(JobState.Queued);
  Job job = JobManager.Start(options1);
  • Thanks for the answer Diego. We have set the roles for only key user who can trigger the publishing. But to additional points which you have specified is not implemented. We cannot have a schedule task since user wants to have some sort of items which should not be visible in live environment on middle of their work. But workflow is not implemented. May be that would help to occurrence of publishing queue. – Gowtham Eswaramoorthy Jan 9 '19 at 20:06
  • Would it be possible to use custom pipeline for it? To publish item without queuing. – Gowtham Eswaramoorthy Jan 9 '19 at 20:10
  • updated answer with more info on that – Diego Jan 10 '19 at 12:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.