Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
getNoQueue example
public
static
function
getSubscribedEvents
(
)
: array
{
return
[
RefreshIndexEvent::
class
=>
'handled',
]
;
}
public
function
handled
(
RefreshIndexEvent
$event
)
: void
{
$this
->registry->
iterate
(
new
AdminIndexingBehavior
(
$event
->
getNoQueue
(
)
,
$event
->
getSkipEntities
(
)
,
$event
->
getOnlyEntities
(
)
)
)
;
}
}
foreach
(
$entities
as
$entityName
)
{
$indexer
=
$this
->
getIndexer
(
$entityName
)
;
$iterator
=
$indexer
->
getIterator
(
)
;
$this
->dispatcher->
dispatch
(
new
ProgressStartedEvent
(
$indexer
->
getName
(
)
,
$iterator
->
fetchCount
(
)
)
)
;
while
(
$ids
=
$iterator
->
fetch
(
)
)
{
$ids
=
array_values
(
$ids
)
;
// we provide no queue when the data is sent by the admin
if
(
$indexingBehavior
->
getNoQueue
(
)
)
{
$this
->
__invoke
(
new
AdminSearchIndexingMessage
(
$indexer
->
getEntity
(
)
,
$indexer
->
getName
(
)
,
$indices
,
$ids
)
)
;
}
else
{
$this
->queue->
dispatch
(
new
AdminSearchIndexingMessage
(
$indexer
->
getEntity
(
)
,
$indexer
->
getName
(
)
,
$indices
,
$ids
)
)
;
}
$this
->dispatcher->
dispatch
(
new
ProgressAdvancedEvent
(
\
count
(
$ids
)
)
)
;
}
$this
->dispatcher->
dispatch
(
new
ProgressFinishedEvent
(
$indexer
->
getName
(
)
)
)
;
}