Document Viewer and Task Queue PAS plugin

Hello,

I can'y understand why when i try to convert two documents at the same time, my plone site become unreachable until document conversion ends.
Can you help me ?

Here is my buildout.conf :

############################################
#
# Buildout Configuration File for Plone
# -------------------------------------
#
# ALWAYS back up all Plone/Zope data and components
# before changing configuration.
#
# Running "bin/buildout" will update your installation,
# installing missing components as necessary.
#
# This will update the add-on products you've added in the eggs= lines.
# This will not, however, upgrade Plone itself (or anything else you've
# pinned with a version specification). To upgrade Plone itself, see the
# comments in "Plone Component Versions".
#
# Tutorial instructions for using zc.buildout for
# configuration management are available at:
# http://plone.org/documentation/tutorial/buildout
# Full details at http://pypi.python.org/pypi/zc.buildout
#
############################################

[buildout]
############################################
# Plone Component Versions
# ------------------------
# This version of the Unified Installer has the components of Plone 5
# preloaded so that it can install without an Internet connection.
# If you want to update, uncomment the "http://..." line below,
# edit it to point to the current version URL, comment out the
# "versions.cfg" line and run "bin/buildout" while attached to the
# Internet. Generally, you only want to do that as part of a planned migration.
# Note that if you are updating components, you should also check the versions
# section at the end of this file, since recipes or components other than
# those of Zope and Plone may need updating at the same time.
#
extends =
    base.cfg
    versions.cfg
    http://dist.plone.org/release/5.0.6/versions.cfg

# If you change your Plone version, you'll also need to update
# the repository link below.
find-links +=
    http://dist.plone.org/release/5.0.6

# If you try to start Zope as root, it will change user id to run as
# the effective user specified here. This user id must own the var directory
# of your buildout.
effective-user = plone_daemon
# This user will own the rest of the installation, and should be used to
# run buildout.
buildout-user = plone_buildout
# A flag to tell the Unified Installer whether or not to document sudo use.
need-sudo = yes

############################################
# Eggs
# ----
# Add an indented line to the eggs section for any Python
# eggs or packages you wish to include in your Plone instance.
#
# Note that versions may be specified here or in the [versions]
# section below. You should always specify versions that you know
# are compatible with the Plone release and at an acceptable
# development level.
#
# If you update to a later version of Plone, remove the hotfix.
#
eggs =
    Plone
    Pillow
    collective.taskqueue
    collective.documentviewer
    ftw.upgrade
    plonetheme.spot
    plonetheme.booster
    plonetheme.business_casual
    plonetheme.future_imperfect
    plonetheme.cleanblog
    collective.plonetruegallery
    collective.ptg.highslide
    collective.ptg.fancybox
    collective.ptg.galleriffic
    collective.ptg.s3slider
    collective.ptg.pikachoose
    collective.ptg.nivoslider
    collective.ptg.nivogallery
    collective.ptg.contentflow
    collective.ptg.supersized
    collective.ptg.thumbnailzoom
    collective.ptg.contactsheet

############################################
# ZCML Slugs
# ----------
# Some eggs need ZCML slugs to tell Zope to
# use them. This is increasingly rare.
zcml =
#    plone.reload

############################################
# Development Eggs
# ----------------
# You can use paster to create "development eggs" to
# develop new products/themes. Put these in the src/
# directory.
# You will also need to add the egg names in the
# eggs section above, and may also need to add them
# to the zcml section.
#
# Provide the *paths* to the eggs you are developing here:
develop =
#    src/my.package

############################################
# var Directory
# -------------
# Sets the target directory for the "var" components of the install such as
# database and log files.
#
var-dir=${buildout:directory}/var

############################################
# Backup Directory
# ----------------
# Sets the target directory for the bin/backup and bin/snapshotbackup
# commands. Default is inside this project's var directory, but ideally
# this should be on a separate volume or backup server.
#
backups-dir=${buildout:var-dir}

############################################
# Initial User
# ------------
# This is the user id and password that will be used to create the initial
# user id that will allow you to log in and create a Plone site. This only
# sets the initial password; it will not allow you to change an already
# existing password. If you change the admin password via the web interface,
# the one below will no longer be valid.
# If you find yourself locked out of your Zope/Python installation, you may
# add an emergency user via "bin/plonectl adduser".
user=admin:+Loin2012

############################################
# Debug Options
# -------------
# Start Zope/Plone instances in "fg" mode to turn on debug mode;
# this will dramatically slow Plone.
#
# Add-on developers should turn deprecation warnings on
deprecation-warnings = off
# change verbose-security to "on" for useful security errors while developing
verbose-security = off

############################################
# Parts Specification
#--------------------
# Specifies the components that should be included in the buildout.
# Most are defined in the base.cfg extension; you may add your
# own if you need them at the end of this file.
parts =
    instance
    repozo
    backup
    zopepy
    unifiedinstaller
    precompiler
    setpermissions

############################################
# Major Parts
# ----------------------
# These common parts make use of sane base settings from
# base.cfg. To customize a part, just add whatever options
# you need. Read base.cfg for common settings.

[instance]
<= instance_base
recipe = plone.recipe.zope2instance
http-address = 8080


############################################
# Versions Specification
# ----------------------
# Version information supplied here will "pin" Python packages to a particular
# version number, even when you use the "newest" flag running buildout.
# Specifying versions for all packages is a good idea and can prevent
# accidental changes when you add new packages to your buildout.
# Note that versions specified here will override those specified earlier
# in the configuration, including those from the Plone and Zope version
# config files.
#
[versions]
# Use the setuptools and zc.buildout versions that are
# available in our Python environment.
setuptools =
zc.buildout =

Products.PloneHotfix20160830 = 1.3
Pillow = 3.3.1

# installer dependencyies
buildout.sanitycheck = 1.0.2
collective.recipe.backup = 3.0.0
plone.recipe.unifiedinstaller = 4.3.2

# develop.cfg dependencies
args = 0.1.0
bobtemplates.plone = 1.0.4
clint = 0.5.1
collective.checkdocs = 0.2
colorama = 0.3.7
MarkupSafe = 0.23
mr.bob = 0.1.2
pkginfo = 1.3.2
Products.DocFinderTab = 1.0.5
requests-toolbelt = 0.7.0
twine = 1.8.1
zest.pocompile = 1.4
zest.releaser = 6.6.5

#collective.documentviewer = 5.0.0
 
zope-conf-additional =
    %import collective.taskqueue
    <taskqueue />
    <taskqueue-server />

    <taskqueue>
    queue mailhost
    </taskqueue>
    <taskqueue-server>
    queue mailhost
     </taskqueue-server>

We are using collective.documentviewer with collective.celery to run the conversion in an async way, here you have our example buildout for plone 5:

We use c.documentviewer out of the box but we always use zeocluster with a
worker client to do the actual conversion while the site continues to
respond.

Mikemets, can i see your configuration ?

Increasing zserver-threads from 2 to 5 solve my problem.

I don't believe that collective.documentviewer supports collective.taskqueue out of the box.

Simply increasing zserver-threads from 2 to 5 will cause the same issue, when you convert 5 documents at the same time.

Sure but this parameter may be increased again if it need it.

Performance decreases the higher you put that number. 2 is optimal.

async integration is the best way to go...