Tracking media fetch and storage durations. Enabled log symlink.
This commit is contained in:
		
							parent
							
								
									89da72d3d8
								
							
						
					
					
						commit
						f198929983
					
				
							
								
								
									
										1915
									
								
								log/2020-01-13.log
								
								
								
								
							
							
						
						
									
										1915
									
								
								log/2020-01-13.log
								
								
								
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							|  | @ -5976,6 +5976,16 @@ const sites = [ | |||
| 			studioId: 29, | ||||
| 		}, | ||||
| 	}, | ||||
| 	{ | ||||
| 		name: 'Anal Teens', | ||||
| 		slug: 'analteens', | ||||
| 		url: 'https://www.analvids.com/studios/anal_teens', | ||||
| 		parent: 'analvids', | ||||
| 		hasLogo: false, | ||||
| 		parameters: { | ||||
| 			studioId: 2251, | ||||
| 		}, | ||||
| 	}, | ||||
| 	{ | ||||
| 		name: 'Gonzo.com', | ||||
| 		slug: 'gonzocom', | ||||
|  | @ -6016,7 +6026,7 @@ const sites = [ | |||
| 		}, | ||||
| 	}, | ||||
| 	{ | ||||
| 		name: 'NRX-Studio', | ||||
| 		name: 'NRX Studio', | ||||
| 		slug: 'nrxstudio', | ||||
| 		url: 'https://www.analvids.com/studios/nrx-studio', | ||||
| 		parent: 'analvids', | ||||
|  | @ -6030,6 +6040,16 @@ const sites = [ | |||
| 			studioId: 94, | ||||
| 		}, | ||||
| 	}, | ||||
| 	{ | ||||
| 		name: 'NRX The Dark Side', | ||||
| 		slug: 'nrxdarkside', | ||||
| 		url: 'https://www.analvids.com/studios/nrx_dark_side', | ||||
| 		parent: 'analvids', | ||||
| 		hasLogo: false, | ||||
| 		parameters: { | ||||
| 			studioId: 3022, | ||||
| 		}, | ||||
| 	}, | ||||
| 	{ | ||||
| 		name: "Giorgio's Lab", | ||||
| 		slug: 'giorgioslab', | ||||
|  |  | |||
|  | @ -1034,6 +1034,7 @@ const tagMedia = [ | |||
| 	['teen', 0, 'Alexa Flexy', 'sensualgirl'], | ||||
| 	['teen', 1, 'Stalfra aka Precious', 'nubiles'], | ||||
| 	['trainbang', 'monika_fox_analvids', 'Monika Fox', 'analvids'], | ||||
| 	['trainbang', 'sasha_paige_analvids', 'Sasha Piage', 'analvids'], | ||||
| 	['trainbang', 1, 'Ria Sunn', 'private'], | ||||
| 	['trainbang', 0, 'Nicole Black in GIO971', 'analvids'], | ||||
| 	['transsexual', 'kelly_silva_mel_almeida_brazilliantranssexuals', 'Kelly Silva and Mel Almeida', 'brazilliantranssexuals'], | ||||
|  |  | |||
|  | @ -28,14 +28,20 @@ function logger(filepath) { | |||
| 				timestamp: true, | ||||
| 			}), | ||||
| 			new winston.transports.DailyRotateFile({ | ||||
| 				datePattern: 'YYYY-MM-DD', | ||||
| 				filename: path.join('log', 'combined_%DATE%.log'), | ||||
| 				level: 'silly', | ||||
| 				datePattern: 'YYYY-MM-DD', | ||||
| 				dirname: 'log', | ||||
| 				filename: 'combined_%DATE%.log', | ||||
| 				symlinkName: 'combined.log', | ||||
| 				createSymlink: true, | ||||
| 			}), | ||||
| 			new winston.transports.DailyRotateFile({ | ||||
| 				datePattern: 'YYYY-MM-DD', | ||||
| 				filename: path.join('log', 'error_%DATE%.log'), | ||||
| 				level: 'error', | ||||
| 				datePattern: 'YYYY-MM-DD', | ||||
| 				dirname: 'log', | ||||
| 				filename: 'error_%DATE%.log', | ||||
| 				symlinkName: 'error.log', | ||||
| 				createSymlink: true, | ||||
| 			}), | ||||
| 		], | ||||
| 	}); | ||||
|  |  | |||
							
								
								
									
										18
									
								
								src/media.js
								
								
								
								
							
							
						
						
									
										18
									
								
								src/media.js
								
								
								
								
							|  | @ -463,11 +463,15 @@ async function writeLazy(image, lazypath) { | |||
| 		.toFile(path.join(config.media.path, lazypath)); | ||||
| } | ||||
| 
 | ||||
| const nsPerSec = 1e9; // nanoseconds per second
 | ||||
| 
 | ||||
| async function storeImageFile(media, hashDir, hashSubDir, filename, filedir, filepath, options) { | ||||
| 	logger.silly(`Storing permanent media files for ${media.id} from ${media.src} at ${filepath}`); | ||||
| 	logger.debug(`Memory usage at image storage: ${process.memoryUsage.rss() / 1000000} MB (${media.src})`); | ||||
| 
 | ||||
| 	try { | ||||
| 		const startTime = process.hrtime(); | ||||
| 
 | ||||
| 		const thumbdir = config.s3.enabled ? path.join(media.role, 'thumbs') : path.join(media.role, 'thumbs', hashDir, hashSubDir); | ||||
| 		const thumbpath = path.join(thumbdir, filename); | ||||
| 
 | ||||
|  | @ -531,7 +535,10 @@ async function storeImageFile(media, hashDir, hashSubDir, filename, filedir, fil | |||
| 			]); | ||||
| 		} | ||||
| 
 | ||||
| 		const diffTime = process.hrtime(startTime); | ||||
| 
 | ||||
| 		logger.silly(`Stored thumbnail, lazy and permanent media file for ${media.id} from ${media.src} at ${filepath}`); | ||||
| 		logger.debug(`Media storage took ${(diffTime[0] * nsPerSec + diffTime[1]) / 1e6} ms (${media.role} ${media.id})`); | ||||
| 
 | ||||
| 		return { | ||||
| 			...media, | ||||
|  | @ -584,6 +591,8 @@ async function storeFile(media, options) { | |||
| 			return storeImageFile(media, hashDir, hashSubDir, filename, filedir, filepath, options); | ||||
| 		} | ||||
| 
 | ||||
| 		const startTime = process.hrtime(); | ||||
| 
 | ||||
| 		if (['posters', 'photos', 'caps', 'covers'].includes(media.role)) { | ||||
| 			throw new Error(`Media for '${media.role}' must be an image, but '${media.meta.mimetype}' was detected`); | ||||
| 		} | ||||
|  | @ -605,7 +614,10 @@ async function storeFile(media, options) { | |||
| 			await storeS3Object(filepath, media); | ||||
| 		} | ||||
| 
 | ||||
| 		const diffTime = process.hrtime(startTime); | ||||
| 
 | ||||
| 		logger.silly(`Stored permanent media file for ${media.id} from ${media.src} at ${filepath}`); | ||||
| 		logger.debug(`Media storage took ${(diffTime[0] * nsPerSec + diffTime[1]) / 1e6} ms (${media.role} ${media.id})`); | ||||
| 
 | ||||
| 		return { | ||||
| 			...media, | ||||
|  | @ -792,6 +804,8 @@ async function trySource(baseSource, existingMedias, baseMedia) { | |||
| 
 | ||||
| async function fetchMedia(baseMedia, existingMedias) { | ||||
| 	try { | ||||
| 		const startTime = process.hrtime(); | ||||
| 
 | ||||
| 		const source = await baseMedia.sources.reduce( | ||||
| 			// try each source until success
 | ||||
| 			(result, baseSource, baseSourceIndex) => result.catch(async (error) => { | ||||
|  | @ -804,6 +818,10 @@ async function fetchMedia(baseMedia, existingMedias) { | |||
| 			Promise.reject(new Error()), | ||||
| 		); | ||||
| 
 | ||||
| 		const diffTime = process.hrtime(startTime); | ||||
| 
 | ||||
| 		logger.debug(`Media fetch took ${(diffTime[0] * nsPerSec + diffTime[1]) / 1e6} ms (${baseMedia.role} ${baseMedia.id})`); | ||||
| 
 | ||||
| 		return { | ||||
| 			...baseMedia, | ||||
| 			...source, | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue