X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Finitializers%2Fconstants.ts;h=329d0ffe8e358b095837a0c4675fcbacb9bf3513;hb=7859b5800c08c15f3380fb3a7e267ce1b3f2df9f;hp=7b63a9ccd20edefe55134911c5f69c3092e826bb;hpb=fd206f0b2d7e5c8e00e2817266d90ec54f79e1da;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/initializers/constants.ts b/server/initializers/constants.ts index 7b63a9ccd..329d0ffe8 100644 --- a/server/initializers/constants.ts +++ b/server/initializers/constants.ts @@ -1,6 +1,6 @@ import { IConfig } from 'config' import { dirname, join } from 'path' -import { JobCategory, JobState, VideoRateType } from '../../shared/models' +import { JobType, VideoRateType } from '../../shared/models' import { ActivityPubActorType } from '../../shared/models/activitypub' import { FollowState } from '../../shared/models/actors' import { VideoPrivacy } from '../../shared/models/videos' @@ -12,7 +12,7 @@ let config: IConfig = require('config') // --------------------------------------------------------------------------- -const LAST_MIGRATION_VERSION = 175 +const LAST_MIGRATION_VERSION = 180 // --------------------------------------------------------------------------- @@ -26,7 +26,7 @@ const PAGINATION_COUNT_DEFAULT = 15 const SORTABLE_COLUMNS = { USERS: [ 'id', 'username', 'createdAt' ], ACCOUNTS: [ 'createdAt' ], - JOBS: [ 'id', 'createdAt' ], + JOBS: [ 'createdAt' ], VIDEO_ABUSES: [ 'id', 'createdAt' ], VIDEO_CHANNELS: [ 'id', 'name', 'updatedAt', 'createdAt' ], VIDEOS: [ 'name', 'duration', 'createdAt', 'views', 'likes' ], @@ -61,23 +61,20 @@ const REMOTE_SCHEME = { WS: 'wss' } -const JOB_STATES: { [ id: string ]: JobState } = { - PENDING: 'pending', - PROCESSING: 'processing', - ERROR: 'error', - SUCCESS: 'success' -} -const JOB_CATEGORIES: { [ id: string ]: JobCategory } = { - TRANSCODING: 'transcoding', - ACTIVITYPUB_HTTP: 'activitypub-http' +const JOB_ATTEMPTS: { [ id in JobType ]: number } = { + 'activitypub-http-broadcast': 5, + 'activitypub-http-unicast': 5, + 'activitypub-http-fetcher': 5, + 'video-file': 1 } -// How many maximum jobs we fetch from the database per cycle -const JOBS_FETCH_LIMIT_PER_CYCLE = { - transcoding: 10, - httpRequest: 20 +const JOB_CONCURRENCY: { [ id in JobType ]: number } = { + 'activitypub-http-broadcast': 1, + 'activitypub-http-unicast': 5, + 'activitypub-http-fetcher': 1, + 'video-file': 1 } -// 1 minutes -let JOBS_FETCHING_INTERVAL = 60000 +// 2 days +const JOB_COMPLETED_LIFETIME = 60000 * 60 * 24 * 2 // 1 hour let SCHEDULER_INTERVAL = 60000 * 60 @@ -96,6 +93,11 @@ const CONFIG = { USERNAME: config.get('database.username'), PASSWORD: config.get('database.password') }, + REDIS: { + HOSTNAME: config.get('redis.hostname'), + PORT: config.get('redis.port'), + AUTH: config.get('redis.auth') + }, STORAGE: { AVATARS_DIR: buildPath(config.get('storage.avatars')), LOG_DIR: buildPath(config.get('storage.logs')), @@ -113,6 +115,9 @@ const CONFIG = { URL: '', HOST: '' }, + LOG: { + LEVEL: config.get('log.level') + }, ADMIN: { get EMAIL () { return config.get('admin.email') } }, @@ -281,9 +286,8 @@ const ACTIVITY_PUB = { PUBLIC: 'https://www.w3.org/ns/activitystreams#Public', COLLECTION_ITEMS_PER_PAGE: 10, FETCH_PAGE_LIMIT: 100, - MAX_HTTP_ATTEMPT: 5, URL_MIME_TYPES: { - VIDEO: [ 'video/mp4', 'video/webm', 'video/ogg' ], // TODO: Merge with VIDEO_MIMETYPE_EXT + VIDEO: Object.keys(VIDEO_MIMETYPE_EXT), TORRENT: [ 'application/x-bittorrent' ], MAGNET: [ 'application/x-bittorrent;x-scheme-handler/magnet' ] }, @@ -355,7 +359,6 @@ const OPENGRAPH_AND_OEMBED_COMMENT = '' // Special constants for a test instance if (isTestInstance() === true) { ACTOR_FOLLOW_SCORE.BASE = 20 - JOBS_FETCHING_INTERVAL = 1000 REMOTE_SCHEME.HTTP = 'http' REMOTE_SCHEME.WS = 'ws' STATIC_MAX_AGE = '0' @@ -378,10 +381,8 @@ export { CONFIG, CONSTRAINTS_FIELDS, EMBED_SIZE, - JOB_STATES, - JOBS_FETCH_LIMIT_PER_CYCLE, - JOBS_FETCHING_INTERVAL, - JOB_CATEGORIES, + JOB_CONCURRENCY, + JOB_ATTEMPTS, LAST_MIGRATION_VERSION, OAUTH_LIFETIME, OPENGRAPH_AND_OEMBED_COMMENT, @@ -405,7 +406,8 @@ export { VIDEO_RATE_TYPES, VIDEO_MIMETYPE_EXT, AVATAR_MIMETYPE_EXT, - SCHEDULER_INTERVAL + SCHEDULER_INTERVAL, + JOB_COMPLETED_LIFETIME } // ---------------------------------------------------------------------------