I am what i am

作者分享了从上一家公司到加入当前外贸公司的转变经历,描述了工作环境的变化、个人心境的起伏以及对技术成长的思考。文章中提到了工作压力、业余爱好的追求、团队氛围等多方面内容,通过个人经历探讨了技术行业中的职业发展和自我认知。

     项目终于要发布beta版了,于是今天破天荒的提早下班了,这么早回到家里出乎意料的感觉有点不习惯,看了看我的博客,竟然快一年都没有更新了。还记得在上一家公司的时候,每天都要写工作日志,每到周末还要进行周总结,写这些对于那个时候的我来说太痛苦了,因为一天学习的时间太短,你甚至不能看完一篇文档,写简单了怕被领导看轻,写复杂了又怕太过花哨,每到5点以后,我就开始为写文档而纠结了,现在有时候也会怀念那段工作日子。

     也许是工作太过清闲或者说是我有一颗躁动不安的心,几番推辞后我辞掉了那份适合养老的工作加入到现在这家外贸公司,从此我过上了繁忙的生活,一个月可能没有一天能按时下班,我的心境从开始的激昂慢慢的被无休止的加班折磨得开始烦躁,我渐渐的发现我的生活除了工作似乎找不到其它新鲜元素,但是这能让我拥有存在感,我并不是一个工作狂,我也有自己的狂热爱好,话来湖人今天又输了,实在有些胸闷。

     时光慢慢让我变成了一支愤怒的老鸟,有老鸟的羽毛,很想飞,却怎么也飞不高,这大概是每个处于瓶颈状态程序员的烦恼,有时候选择可以很多,但终究都只余下过尽千帆皆不是的惆怅,而不是拨开迷雾见云天的喜悦。看着周围的同学朋友有的背靠着平台已经有了相当的生活指标,心中亦是躁动不安,但是我不会像个怨妇一样到处去抱怨,我一直犹豫在选择茶与咖啡的道路上,可能最终也不会有个定论,我喜欢张国荣的那首歌《我就是我》,不愿意苟同,天空海阔,要做最坚强的泡沫。

     想写的东西很多,但也不知为何道不明,抬头仰望这参了尘色的夜空,我知道我又会晤了许多。

import logging from time import sleep import requests import pymysql from typing import List, Tuple, Optional from concurrent.futures import ThreadPoolExecutor import time from dbutils.pooled_db import PooledDB # 配置常量 MAX_WORKERS = 10 # 最大线程数 headers = { "x-rapidapi-key": "40eb93fa97mshba6ed80cd703eadp105b67jsn0fb3c77e09ea", "x-rapidapi-host": "imdb236.p.rapidapi.com" } def query_movie(imdb_id:str, vod_id:int): url = f"https://imdb236.p.rapidapi.com/api/imdb/{imdb_id}" print(url) try: response = requests.get(url, headers=headers) response.raise_for_status() data = response.json() print(data) if not data: logging.warning(f"未找到IMDB编号: {imdb_id}") return False primaryTitle = data.get("primaryTitle", "") releaseDate = data.get("releaseDate", "") averageRating = data.get("averageRating", "") description = data.get("description", "") if not any([primaryTitle, releaseDate, description]): logging.warning(f"关键字段全空: {data.get('imdb_id', '未知ID')}") return False print(f"primaryTitle: {primaryTitle}") print(f"releaseDate: {releaseDate}") print(f"averageRating: {averageRating}") print(f"description: {description}") with get_db_connection() as connection: with connection.cursor() as cursor: if not releaseDate: sql = "UPDATE mac_vod SET vod_sub = %s, vod_blurb_en = %s, imdb_update=now() WHERE vod_id = %s" cursor.execute(sql, (primaryTitle, description, vod_id)) connection.commit() logging.info(f"Updated ID:{vod_id} Title:{primaryTitle}") return True else: sql = "UPDATE mac_vod SET vod_sub = %s, vod_year = %s, vod_blurb_en = %s, imdb_update=now() WHERE vod_id = %s" cursor.execute(sql, (primaryTitle, releaseDate, description, vod_id)) connection.commit() logging.info(f"Updated ID:{vod_id} Title:{primaryTitle}") return True except Exception as e: logging.error(f"处理ID:{imdb_id}时出错: {str(e)}") return False def get_db_connection(): """获取数据库连接""" return pymysql.connect( host='172.96.161.250', user='root', password='66a811ee546b02a1', # 建议从环境变量或配置文件中读取 database='fusion', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor ) def query_sql(page: int, page_size: int) -> List[Tuple[int, str]]: try: offset = (page - 1) * page_size connection = get_db_connection() with connection.cursor() as cursor: sql = "SELECT vod_id, imdb_id FROM mac_vod where imdb_id is not null and imdb_update is null order by vod_id desc limit %s offset %s;" cursor.execute(sql,(page_size, offset)) print(sql) return cursor.fetchall() except Exception as e: print(f"数据库查询出错: {e}") return [] finally: if 'connection' in locals(): connection.close() def process_item(item: Tuple[int,str]) -> None: # 处理单个项目 vod_id = item['vod_id'] imdb_id = item['imdb_id'] try: print(f"IMDBid:{imdb_id} vod_id:{vod_id}") sleep(1) query_movie(imdb_id,vod_id) except Exception as e: print(f"处理ID:{imdb_id}时出错: {e}") def start(): for i in range(1, 960): # 查询最后更新的数据 items = query_sql(1,50) print(items) print(f"获取到{len(items)}条需要处理的记录") # 使用线程池并行处理 with ThreadPoolExecutor(max_workers=MAX_WORKERS) as executor: executor.map(process_item, items) if __name__ == '__main__': # 记录开始时间 start_time = time.time() start() # 记录结束时间并计算执行时间 end_time = time.time() execution_time = end_time - start_time print(f"任务完成,总执行时间: {execution_time:.2f} 秒") 修改代码,使用以下api: import requests url = "https://imdb8.p.rapidapi.com/title/v2/get-ratings" querystring = {"tconst":"tt32439604"} headers = { "x-rapidapi-key": "40eb93fa97mshba6ed80cd703eadp105b67jsn0fb3c77e09ea", "x-rapidapi-host": "imdb8.p.rapidapi.com" } response = requests.get(url, headers=headers, params=querystring) print(response.json()) api获取数据示例: {'data': {'title': {'__typename': 'Title', 'id': 'tt32439604', 'titleText': {'text': 'I Am What I Am 2', 'isOriginalTitle': False}, 'originalTitleText': {'text': 'Xiong Shi Shao Nian 2', 'isOriginalTitle': True}, 'releaseYear': {'__typename': 'YearRange', 'year': 2024, 'endYear': None}, 'releaseDate': {'__typename': 'ReleaseDate', 'month': 12, 'day': 14, 'year': 2024, 'country': {'id': 'CN'}, 'restriction': None, 'attributes': [], 'displayableProperty': {'qualifiersInMarkdownList': None}}, 'titleType': {'__typename': 'TitleType', 'id': 'movie', 'text': 'Movie', 'categories': [{'id': 'movie', 'text': 'Movie', 'value': 'movie'}], 'canHaveEpisodes': False, 'isEpisode': False, 'isSeries': False, 'displayableProperty': {'value': {'plainText': ''}}}, 'primaryImage': {'__typename': 'Image', 'id': 'rm636131586', 'url': 'https://m.media-amazon.com/images/M/MV5BMDU4NjE0NmEtZjVkMi00N2IwLTliY2EtM2JmNjhjYTg3MjRkXkEyXkFqcGc@._V1_.jpg', 'height': 2500, 'width': 1786}, 'canRate': {'isRatable': True}, 'ratingsSummary': {'voteCount': 278, 'aggregateRating': 7.5, 'topRanking': None}}}} 将'text': '{I Am What I Am 2}'更新到数据库vod_sub字段 将'month': {12}, 'day': {14}, 'year': {2024},重新拼接为{2024-12-14}更新到数据库vod_year字段 将'aggregateRating': {7.5},更新到数据库vod_douban_score字段,如果该内容为空,不更新这个字段
06-08
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值