In general, player software starts downloading new resources in a random order shortly after a sequence is updated. (See performance considerations below for why).
Recent player software supports custom download priorities and download conditions to provide more control over what order and when resources are downloaded.
Player software with support for download priorities and conditions:
- android-player-23.0.apk +
- android-exoplayer-10.0.apk +
- analytics-23.apk +
SignageNode does not support download priorities and conditions. This is because SignageNode does not download media in a queue before playback. All media is streamed or downloaded in the order it is configured to play in the sequence.
Download priorities
A download priority is a numeric value used to control the order resources are downloaded.
Downloading progresses through the priority numbers in ascending order. This means resources with a download priority of 1 will be downloaded before resources with a download priority of 2.
Default download priorities
- Resources have a default download priority of 10
- Resources required by sequence frames have priority offset by -5 (download earlier)
- Resources not required for at least a week have priority offset by +5 (download later)
- Resources not required for at least a day have priority offset by +3
- Resources not required for at least an hour have priority offset by +2
- Resources required by event actions have priority offset by +1
Custom download priorities
A downloadPriority can be added to the resource, item, or sequence data to override the default.
For example, to ensure an item is downloaded before all other items, a custom download priority can be added to the item data:
downloadPriority=1
To change the download priority for all items in an inner sequence, a downloadPriority can be added to the sequence data.
Download conditions
A downloadCondition can be added to the resource, item or sequence data to dynamically control when a resource starts downloading. Resources will only start downloading after higher priority resources have downloaded and the download condition evaluates to true.
For example, to ensure all resources in an inner sequence only downloaded between midnight and 4am, the following download condition could be added to the inner sequence data:
downloadCondition=time.between("00:00", "04:00")
If a download condition or priority is specified in sequence data, it will be overridden by a condition or priority in item data. Likewise, a condition or priority in resource data will override a condition or priority in item or sequence data.
Performance considerations
When updating many screens simultaneously, it is desirable to encourage items to download in a random order to avoid creating hot-spots. A hot-spot is where a single device or server is overwhelmed with requests for a specific resource.
To evenly spread load, increase reliability and performance, use a small number of unique priorities. Resources with the same download priority will be downloaded in a random order automatically.
Download order testing
To preview the order, a screen will download resources. The following web address can be used:
/debug/download-queue/[SCREEN-ID]
Comments
0 comments
Please sign in to leave a comment.