2021年2月26日星期五

邓萃雯拔倒刺发炎入院手术!如何护理指甲间的皮肤

核心提示:喜欢咬指甲、喜欢拔倒刺的人,很容易伤害到指甲周围的皮肤,导致皮肤裂开,疼痛能忍,但被感染了,或许就要手术了。

24日, 香港明星鄧萃雯发文讲述自己拔倒刺后发炎,被迫入院手术的经历,同时提醒大家"如果你们不幸指甲有倒刺的时候,千万不要随意拔除甚至用牙咬,而是要找指甲剪消毒以后小心剪掉"。


图源:网络

都说十指连心,隔着屏幕看图片都能想象到那种发炎的疼痛。

因为干燥的天气、人为的咬指甲,都会导致指甲周围的皮肤干燥,甚至裂开。

喜欢咬指甲、喜欢拔倒刺的人,很容易伤害到指甲周围的皮肤,导致皮肤裂开,疼痛能忍,但被感染了,或许就要手术了。

如何护理指甲间的皮肤?

一、修复表皮

1、浸泡双手。

拿一个中等大小的碗,倒入大约10厘米深的温水,浸泡双手,指甲和表皮都要泡在水中,浸泡大约5分钟。

温水能软化指甲周围的皮肤,更容易修剪,而且还不会痛。

2、用毛巾轻轻擦干双手。

表皮上不要有水,但是双手要保持湿润。修剪时,皮肤要保持湿润柔软,这样更容易去除死皮,也不会痛。

3、向后推表皮。

木制的推皮棒或者橘木棒(一根护理指甲的小棒,有尖头和平头)能防止表皮长到指甲上。

用橘木棒的平头将表皮往后推,用尖头沿着指甲底部移动,清除掉堆积的污垢。

每次使用前后,金属或塑料的推皮棒必须要消毒,橘木棒使用后要扔掉,否则会滋生细菌。

4、剪掉指甲周围多余的皮肤。

用指甲钳、指甲刀,剪掉多余的死皮,这些死皮可能在皮肤附近,一定要小心,只剪那些脱落、柔软、半透明的死皮,不要剪到真正的皮肤。你剪的应该是长到指甲上,但是现在已经脱落的表皮。

不要剪指甲周围起保护作用的皮肤。

与皮肤相比,脱落的死皮是白色的,只除掉那些会被刮到、扯坏皮肤的死皮就行。

5、涂上保湿霜。

涂乳液、保湿油或者专用于保湿的产品,滋润指甲周围干燥的皮肤。留意指甲周围的皮肤,在指甲及周围涂上大量的润肤霜。

你也可以在指甲下面涂润肤霜。

一般不含酒精和香料的润肤霜能很好地滋润皮肤。

6、戴上锁水的手套。

戴棉手套,戴一夜。手套能锁住保湿成分,修复指甲和表皮。早上再脱掉手套。

如果你想让保湿霜吸收得更好,再涂上凡士林或石蜡,锁住水分,然后戴上手套。

为了获得更好、更持久的效果,每天晚上重复这个过程。

二、防止表皮干燥

1、经常保湿。

如果想让指甲周围的皮肤更光滑滋润,每天都要保湿几次。因为指甲、表皮干燥时,会出现倒刺、裂口,所以一定要记得保湿。

在干燥的冬季保持双手湿润特别重要。

2、不要用干燥剂。

干燥的双手容易裂开脱皮,所以要避免会导致皮肤干燥的非必要活动,包括:

不戴手套,用热水刷碗。热水和肥皂会导致双手的水分流失,洗碗时戴手套,保护指甲和双手。洗碗后,擦干双手。

用含丙酮的卸甲水。丙酮可以除掉皮肤和指甲上的天然油脂。

冬天不戴手套。冬天寒冷干燥的空气会导致皮肤干燥,一定要戴手套。

3、不要抠自己的皮肤。

不要抠指甲周围脱落的死皮,否则皮肤会裂开,可能引发感染,浸泡滋润双手。

有些人一紧张就抠指甲。控制自己,找个更好的替代方法,改变这个习惯。

4、不要把手放到嘴里。

尽量不要咬指甲或啃周围脱落的死皮。如果咬坏了周围的皮肤,或者把指甲啃得很短,口腔中的细菌可能会引发感染。

可以在手上涂有臭味的药膏,防止自己啃手。

5、每天至少喝8杯水,补充水分。

补充水分能让皮肤柔软湿润。最好是喝水,但是也可以用橘子、柠檬、酸橙或黄瓜片来调味,也可以喝茶或果汁等其他饮品,补充水分。

吃含水多的食物,比如汤。水果糖也能促进水合作用。

如果你流了很多汗,要多喝水。

6、饮食要健康、均衡。

如果身体缺乏营养,皮肤、头发、指甲都会受到影响。多吃瘦肉蛋白、蔬菜、水果。要想营养均衡,得吃健康的脂肪。

你也可以补维生素,让指甲更健康。但是要先咨询医生,然后再补。


7、锉指甲。

不要留长指甲,以免被钩住。要特别注意指甲的四周,保持光滑,以免伤到指甲周围的皮肤。

锉指甲时,要朝着一个方向挫,以免指甲裂开。


原文转载:http://lady.shaoqun.com/a/267380.html

跨境电商:https://www.ikjzd.com/

net a porter:https://www.ikjzd.com/w/2132

韩国naver:https://www.ikjzd.com/w/1727


核心提示:喜欢咬指甲、喜欢拔倒刺的人,很容易伤害到指甲周围的皮肤,导致皮肤裂开,疼痛能忍,但被感染了,或许就要手术了。 24日,香港明星鄧萃雯发文讲述自己拔倒刺后发炎,被迫入院手术的经历,同时提醒大家"如果你们不幸指甲有倒刺的时候,千万不要随意拔除甚至用牙咬,而是要找指甲剪消毒以后小心剪掉"。图源:网络都说十指连心,隔着屏幕看图片都能想象到那种发炎的疼痛。因为干燥的天气、人为的咬指甲,都会导致指甲
一淘比价网:https://www.ikjzd.com/w/1698
aeo:https://www.ikjzd.com/w/2356
tinypic:https://www.ikjzd.com/w/114
最好的试销不是傻傻发货傻傻卖,而是这六个维度的全面竞品分析!:https://www.ikjzd.com/home/131342
关于亚马逊退货问题的分析及建议!:https://www.ikjzd.com/home/13095
Shopee虾皮入门教程_Shopee从开店到运营全流程:https://www.ikjzd.com/home/123367

朱荣振噩耗?19+9超星加盟辽宁,杨鸣终觅得韩德君完美替身?_付豪

原标题:朱荣振噩耗?19+9超星加盟辽宁,杨鸣终觅得韩德君完美替身?

北京时间2月25日,CBA即将迎来第三阶段的比赛,说到本赛季最大的争冠热门,无疑还是广东队和辽宁的,虽然在第二阶段结束之际,辽宁在同广东的比赛中被逆转击败,但众所周知,辽宁队并没有使出他们真正的实力,其中他们依然拥有一个外援名额。并且前八一球员付豪已经和辽宁队传出了很多的消息,后者加盟已经只差官宣,2月25日,辽宁飞豹队正式宣布,前八一球员付豪将会在第三阶段中身披一号战袍跟随辽宁队一同征战,他的加入无疑让辽宁队实力大增。

由于本赛季开始之初,八一男篮宣布解散,而前八一男篮的很多优秀球员也处于待业状态,其中付豪和邹雨辰无疑是最受关注的两位球员,付豪作为一名两米08的大个球员,在CBA的赛场上不仅可以打4号位,出任中锋也是游刃有余。而在上赛季效力于八一男篮时,他就已经成为了一名全明星级别的球员,场均19分9.5篮板细数国内内线也没有几个人能够做到,他的加盟无疑为辽宁队的争冠再次添上了一层保护膜。

事实上,内线一直是辽宁队的一个弱点,虽然队中拥有韩德君这位超级内线,不过大韩的年龄已经不允许他在场上太过卖力,而用高诗岩换来的朱荣振虽然渐入佳境,但却始终只是一个蓝领球员,几乎没有自主进攻能力。而付豪的加盟完全可以弥补这一空缺,当韩德君在场时,付豪可以出任四号位组成超级内线,两人可以成为辽宁防线的最后一道屏障。

但虽然对于辽篮来说,付豪的加盟可以让球队实力再次增强,不过对于辽篮的内线球员来说这并不是一个好消息,不用提刘雁宇这样的球队边缘人物,就连朱荣振恐怕也高兴不起来。毕竟当付豪加盟之后即使是主打4号位,在拥有付豪和韩德君这两位明星内线的情况下,杨鸣势必会减少朱荣振的出场时间,这对于经历了长时间的蛰伏之后,终于在第二阶段中找到自己的朱荣振无疑是一个巨大的打击。

不过想必球员也会以大局为核心,毕竟凭借着辽宁队现在的阵容,拿下总冠军还不敢说是板上钉钉的事情,但当付豪加盟之后,他们将会在现有的基础上实力再次大增,拿下总冠军的几率也会大大增加。再加上如果弗格能够来到辽宁即使是个别球员将会做出牺牲,但无疑拿下总冠军才是最重要的事情。各位球迷们也可以试想一下,当后场拥有郭艾伦和赵继伟这两位传球高手,而内线又拥有着韩德君和付豪这样的超级内线组合之后,辽宁队在CBA中将会是怎样的存在。

文/颜小白返回搜狐,查看更多

责任编辑:

原文转载:http://sport.shaoqun.com/a/449740.html

跨境电商:https://www.ikjzd.com/

拍怕:https://www.ikjzd.com/w/2205

焦点科技:https://www.ikjzd.com/w/1831


原标题:朱荣振噩耗?19+9超星加盟辽宁,杨鸣终觅得韩德君完美替身?北京时间2月25日,CBA即将迎来第三阶段的比赛,说到本赛季最大的争冠热门,无疑还是广东队和辽宁的,虽然在第二阶段结束之际,辽宁在同广东的比赛中被逆转击败,但众所周知,辽宁队并没有使出他们真正的实力,其中他们依然拥有一个外援名额。并且前八一球员付豪已经和辽宁队传出了很多的消息,后者加盟已经只差官宣,2月25日,辽宁飞豹队正式宣布,
crowd:https://www.ikjzd.com/w/880
mymall:https://www.ikjzd.com/w/1050
easy buy:https://www.ikjzd.com/w/2162
亚马逊极限爆单玩法:手把手教你日出1000单!:https://www.ikjzd.com/home/132294
2018年网络星期一即将来临,网络星期一促销攻略来袭!:https://www.ikjzd.com/home/6430
亚马逊卖家:口罩之后,厕纸会是下一个爆款吗?:https://www.ikjzd.com/home/117223

2021年2月25日星期四

震惊:用3D打印混凝土营房来快速建造军营?!

  当我们想到建筑的建造时,这通常是一个被认为需要相当长时间的过程,至少不会像临时建筑那样。然而,美国海军陆战队似乎已经设法找到了一种方法,让他们可以在40小时内,在最短的时间内3D打印混凝土营房。

  美国海军陆战队,正在测试使用大型混凝土 3D 打印机来快速建造军营。 该项目在伊利诺伊州的美国陆军工程研发中心进行,只用了 40 个小时,他们就在那里建好了一座 500 平方英尺的军营小屋。混凝土 3D 打印机并不是一项新发明,只是此前未被军队所采用。除了营房,这项技术还可用于建造自然灾害后的临时住所。

  报道称,海军陆战队系统司令部的增材制造团队(Additive Manufacturing Team),与伊利诺伊州的 I Marine 海军远征队合作完成了本次测试。

  此外,海军 Seabees 用混凝土 3D 打印机制造了规模更大的军营,本次展示为未来快速铺设营房的概念铺平了道路。

  海军陆战队的任务是不断向打印机灌装混凝土,并监控建造的过程(将混凝土层叠堆放),整个过程只花了不到 2 天时间。

  作为对比,木质营房的建造,通常需要 10 名士兵花 5 天时间。但若采用机器人 + 灌装混凝土的方案,时间可进一步缩短至 1 天内。



原文转载:http://tech.shaoqun.com/a/352774.html

跨境电商:https://www.ikjzd.com/

aeo:https://www.ikjzd.com/w/2356

识货:https://www.ikjzd.com/w/1745


当我们想到建筑的建造时,这通常是一个被认为需要相当长时间的过程,至少不会像临时建筑那样。然而,美国海军陆战队似乎已经设法找到了一种方法,让他们可以在40小时内,在最短的时间内3D打印混凝土营房。美国海军陆战队,正在测试使用大型混凝土3D打印机来快速建造军营。该项目在伊利诺伊州的美国陆军工程研发中心进行,只用了40个小时,他们就在那里建好了一座500平方英尺的军营小屋。混凝土3D打印机并不是一项新发
acca是什么:https://www.ikjzd.com/w/1370
心怡物流:https://www.ikjzd.com/w/1327
isbn:https://www.ikjzd.com/w/174
口述:为了离婚丈夫对我机关算尽(2/2):http://lady.shaoqun.com/m/a/73623.html
注意! 这几款玩具又遭下架,全球玩具市场遭遇"寒冬"?:https://www.ikjzd.com/home/321
口述:同居女友竟嫁给了强占她的男人(4/4):http://lady.shaoqun.com/m/a/41219.html

初窥MyBatis-普通的CRUD操作

编写接口 编写对应的Mapper.
  • 编写接口
  • 编写对应的Mapper.
  • 测试(增删改需要提交事务)
<mapper namespace="com.perwrj.dao.UserMapper"><!-- 查询 id="重写的方法名" resultType="返回值类型(全类名)" --> <select id="getUserList" resultType="com.perwrj.pojo.User"> select * from mybatis.user </select></mapper>
  • id:就是对应的namespace中的方法名
  • resultType:sql语句的返回值类型
  • parameterType:传入参数的类型
package com.perwrj.dao;import java.util.List;import com.perwrj.pojo.User;public interface UserMapper {//	查询全部用户	List<User> getUserList();//	根据id查询用户	User getUserById(int id);//	添加一个用户	int addUser(User user);//	修改用户	int updateUser(User user);//	删除用户	int deleteUser(int id);}
<?
package com.perwrj.dao;import java.util.List;import org.apache.ibatis.session.SqlSession;import org.junit.Test;import com.perwrj.pojo.User;import com.perwrj.utils.MyBatisUtil;public class UserMapperTest {	@Test	public void test() {		//获得SqlSession对象,		SqlSession sqlSession = MyBatisUtil.getSqlSession();				try {//			方式一:getMapper执行sql:更加简洁,类型更加安全,推荐使用						 UserMapper userMapper = sqlSession.getMapper(UserMapper.class); List<User>			 userList = userMapper.getUserList();						 for (User user : userList) { System.out.println(user); }				//方式一结束			//			方式二:老方法,不建议使用,			/*			 * List<User> list =			 * sqlSession.selectList("com.perwrj.dao.UserMapper.getUserList");			 * 			 * for (User object : list) { System.out.println(object); }			 */			//方式二结束		}catch(Throwable e) {			e.printStackTrace();		}finally {//			关闭sqlSession			sqlSession.close();		}		}	/**	 * 删除操作	 */	@Test	public void deleteUserTest() {		SqlSession sqlSession = MyBatisUtil.getSqlSession();				try {			UserMapper userMapper = sqlSession.getMapper(UserMapper.class); 			int num = userMapper.deleteUser(4);			if(num > 0) {//				提交事务				System.out.println(num);//1				sqlSession.commit();				sqlSession.close();			}		}catch(Throwable e) {			e.printStackTrace();		}finally {			sqlSession.close();		}			}													/**	 * 改操作	 */	@Test	public void updateUserTest() {		SqlSession sqlSession = MyBatisUtil.getSqlSession();				try {			UserMapper userMapper = sqlSession.getMapper(UserMapper.class); 			int num = userMapper.updateUser(new User(2,"杰瑞","987654"));			if(num > 0) {//				提交事务				System.out.println(num);//1				sqlSession.commit();				sqlSession.close();			}		}catch(Throwable e) {			e.printStackTrace();		}finally {			sqlSession.close();		}				}		/**	 * 增删改需要提交事务	 */	@Test	public void addUserTest() {		SqlSession sqlSession = MyBatisUtil.getSqlSession();						try {			UserMapper userMapper = sqlSession.getMapper(UserMapper.class); 			int num = userMapper.addUser(new User(4,"王瑞杰","123568"));			if(num > 0) {//				提交事务				System.out.println(num);//1				sqlSession.commit();				sqlSession.close();			}		}catch(Throwable e) {			e.printStackTrace();		}finally {			sqlSession.close();		}		}		@Test	public void testGetUserById() {		//获得SqlSession对象,		SqlSession sqlSession = MyBatisUtil.getSqlSession();				try {			 UserMapper userMapper = sqlSession.getMapper(UserMapper.class); 			 User user = userMapper.getUserById(1);			 System.out.println(user);		}catch(Throwable e) {			e.printStackTrace();		}finally {			sqlSession.close();		}		}	}








原文转载:http://www.shaoqun.com/a/587592.html

跨境电商:https://www.ikjzd.com/

执御:https://www.ikjzd.com/w/717.html

万国邮政联盟:https://www.ikjzd.com/w/861


编写接口编写对应的Mapper.编写接口编写对应的Mapper.测试(增删改需要提交事务)<mappernamespace="com.perwrj.dao.UserMapper"><!--查询id="重写的方法名"resultType="返回值类型(全类名)"--><selectid="getUserList"resultTyp
epa认证:https://www.ikjzd.com/w/1769
tenso:https://www.ikjzd.com/w/1552.html
派代:https://www.ikjzd.com/w/2197
虚拟信用卡:https://www.ikjzd.com/w/1055
跨境电商的物流服务专题培训会:https://www.kjyunke.com/courses/186
优质网红:https://www.ikjzd.com/tl/4207

开工后,Wish卖家一定要做这件事!

春节假期就这么结束了?!又是开伤心的工作日了呢,为了和大家一起做好春节的运营,Wish给大家提供了5种春节运营选项,分别是"标准"模式、"2021春节延长选项1"模式、"2021春节延长选项2"模式、"仅限二级仓库"模式和"假期"模式,方便大家过个开心年。所以你选了哪个选项了呢?如果你选择的不是"标准"运营模式,开始工作的第一件事,你要做的就是恢复到正常的运营模式哦。

如果在春节前,你给你的店铺选择了仅限"二级仓库"模式、"2021春节延长选项1"模式、"2021春节延长选项2"模式、"假期"模式,现在赶快恢复到正常运营状态,跟上春节后的跨境潮流吧!

如何恢复到正常的运营模式?

只需要登录Wish商户平台,在"账户"-"设置"-"假期模式"-"前往履行设置"页中选择"标准"模式并完成更新设置后,即可让店铺恢复到正常的运营状态。

image.png

要特别说明的是,从你选择"标准"模式的这一天开始,你的所有订单都将需要按照正常的平台要求进行履行,比如,运营模式更新之日起的释放的订单都需要满足商户政策5.1(即订单需要在5个自然日内标记发货)及其他相关政策要求。

越早恢复正常运营,就能越早抓住2021年的跨境机遇,刚刚过去的春节假期,Wish仍在持续为全球用户、商户提供服务与支持,这些近期发布的重要公告:"用户问题"功能更新、禁售品示例清单更新,你可千万不要错过哦~

 

商户可直接与用户沟通

基于欧洲法规的最新更新及要求,Wish将为广大商户们及欧洲消费者们提供更多销售沟通服务的支持。从2021年2月19日0时(UTC时间)起,Wish将对所有商户和欧洲用户的"用户问题"功能进行更新。

这一次的更新,将能够让欧洲用户可以通过Wish APP(或网站)以创建"用户问题"的形式,向商户提出问题,各位商户在收到此类用户问题的时候,需及时在Wish商户平台或通过API解答用户的疑问,提升购物体验。

如果你的店铺收到了相关的用户问题,你可以登录Wish商户平台,首页顶部导航栏"用户问题"进行查看。若你的店铺收到了这3类用户问题,你可以点击进入各类问题中查看问题详细。

注意!在需要你处理的"用户问题"详细说明中,有一项"回复剩余时间",请你务必在此时间内回复相关问题,如果未能在48小时内做出回复,你可能会收到相应的警告及处理。

image.png

请各位商户关注店铺的"用户问题"并及时回复,Wish也鼓励并支持大家和全球用户保持更紧密的沟通,维持良好的用户满意度及延迟响应率,若您的店铺的延迟响应率过高、或用户满意度过低,都有可能对您的店铺曝光带来不利影响。


禁售品类示例清单更新

为了给全球用户、商户提供更加健康、安全的市场环境,同时也是遵守各国各地区的法律法规,Wish平台禁止销售部分特定品类的产品,为了方便大家了解这些产品及品类,Wish也特别对禁售品类进行了示例说明。

现在,下面这些产品也被纳入Wish平台禁售品类示例清单:

image.png

请各位商户仔细检查自己的产品列表,不要销售禁售产品,避免造成不必要的损失。

在新增禁售品类示例清单的同时,一项产品也从德国、丹麦的禁售品类中移出:金属刀片修剪器。这也就意味着商户们可以开发丹麦、德国相关产品的市场啦~

image.png

来源:Wish商户平台

文章来源:https://www.ikjzd.com/home/142645

跨境电商:https://www.ikjzd.com/

福茂:https://www.ikjzd.com/w/1633

母婴团购网:https://www.ikjzd.com/w/716

gtin:https://www.ikjzd.com/w/136

开工后,Wish卖家一定要做这件事!

​春节假期就这么结束了?!又是开伤心的工作日了呢,为了和大家一起做好春节的运营,Wish给大家提供了5种春节运营选项,分别是"标准"模式、"2021春节延长选项1"模式、"2021春节延长选项2"模式、"仅限二级仓库"模式和"假期"模式,方便大家过个开心年。所以你选了哪个选项了呢?如果你选择的不是"标准"运营模式,开始工作的第一件事,你要做的就是恢复到正常的运营模式哦。

爱特价、爱网购...美国X世代消费习惯有这些!

DMS消息,Mark Dolliver最近为eMarketer撰写的一篇文章,讨论了疫情X世代消费习惯的影响。

 

X世代消费能力不容忽视

 

X世代的消费者收入更高、家庭规模更大,是品牌重要的消费群体。

 

美国劳工统计局(Bureau of Labor Statistics)的数据显示X世代主导的家庭平均总支出为76788美元,超过全国总家庭平均支出63036美元。

 

X世代家庭平均规模更大3.1人,而美国总的家庭平均规模2.5人x世代在大多数主要类别上的支出都高于平均水平。

 

Dolliver表示"由于X世代收入高于平均水平,家庭规模大于平均水平,在一个需要大量消费的人生阶段,X世代是市场营销者不能忽视的群体"

 

X世代消费者喜欢特惠商品

 

大流行影响了X世代的支出,51%的人削减了非必需的购买支出

 

根据eMarketer的数据,86%的X世代用户40 - 54岁)表示,如果新品牌提供优惠券或折扣,他们会尝试。而且,许多X世代购物者在网上和线下都选择优惠券的商品,从而进行最划算的交易

 

对于知名的CPG品牌来说,廉价和便捷的在线订购可能会成为忙碌、追逐便宜货的X世代消费者的关键。

 

网上购物将持续流行

 

过去一年里,X世代将线上购物列为优先选项,其中包括线上杂货购买,这是一个不断增长的电商垂直领域,而X代购物者在购物时往往依赖消费者的评论来保证购物的安全

 

X代介于婴儿潮一代和千禧一代之间,针对这一群体多渠道定位策略可能是有效的。

 

27%的X代表示,他们转向网上购物的趋势可能会持续下去,因此,品牌和零售商在瞄准X代受众时,必须纳入数字战略。并且,一些消费者(35岁至44岁的消费者中有50.1%,45岁至54岁的消费者中有42.2%)在付款方式上选择采用先买后付。

 

此外,许多X世代购物者都希望在大流行后,进行关于旅行、汽车和家庭用品等方面的采购。

 

综上,各零售商/品牌应该根据X世代的消费需求,以更好的创造大量的销售机会。




原文转载:http://www.shaoqun.com/a/586606.html

跨境电商:https://www.ikjzd.com/

新单:https://www.ikjzd.com/w/79

拍拍网服装:https://www.ikjzd.com/w/2205


据DMS消息,MarkDolliver最近为eMarketer撰写的一篇文章,讨论了疫情对X世代消费习惯的影响。X世代消费能力不容忽视X世代的消费者收入更高、家庭规模更大,是品牌重要的消费群体。美国劳工统计局(BureauofLaborStatistics)的数据显示,X世代主导的家庭平均总支出为76788美元,超过全国总家庭平均支出的63036美元。X世代家庭平均规模更大,为3.1人,而美国总的
达方物流:https://www.ikjzd.com/w/2562
亚马逊t恤:https://www.ikjzd.com/w/1932
mil:https://www.ikjzd.com/w/1285
口述:婚前 和暗恋我10年的男人爱爱:http://lady.shaoqun.com/m/a/12533.html
eBay做好这18方面,有助于提高店铺销量:https://www.ikjzd.com/home/8857
怎么样获得更多安全有效的亚马逊Top Review?如何看待亚马逊近期的review新规定?:https://www.ikjzd.com/home/13779

TikTok将在印度尼西亚开启电子商务业务

据了解,TikTok近日发布了一个名为TikTok Shop的新业务单元,并在目前公开的TikTok Shop Seller University(卖家大学)页面发布了包括商店知识产权政策、商店禁止/限制产品指南、产品上架指南、订单运输指南,以及订单取消、退货和退款指南等多个商店条款。


TikTok正在印度尼西亚率先开展TikTok商店灰度测试,可通过Beta版的第三方卖方计划TikTok Shop获取,目前仅开放给印尼市场TikTok在印尼开设的职位空缺就证明了这一点。


可用职位包括创建者开发支持专家业务开发平台风险管理和服务客户服务专家社区合作伙伴经理用户和活动运营专家类别负责人物流运营卖方开发支持专家和类别管理专家。


其实在电子商务方面,除了在美国测试购物功能外,TikTok的印度尼西亚现场广播工作室在2021年初还推出了一个黄色的小购物车,可以将其重新定向到东南亚电子商务平台。


实际上,此时,一些有影响力的人还经常将Instagram Live用作推销活动,而电子商务服务首先由中文版本的TikTok应用程序Douyin实现因为社会商务现象首先在这里兴起。


中国的许多社交媒体平台正在寻找方法来使它更容易为他们的用户在网上购物作出概述。


2020年10月与Shopify合作之后,TikTok允许少量账户开设购买链接。


据说ByteDance子公司已准备好探索电子商务服务,以与其他社交媒体竞争。


TikTok希望有影响力的人或品牌能够出售其产品,以便其他用户可以立即在TikTok上购买其产品。


为了进一步巩固其在电子商务领域的地位,TikTok计划添加一些新功能。


第一个功能是允许影响者或用户共享链接,产品将自动从销售中获得佣金。


第二个功能是使品牌更容易展示其产品目录的功能,最后一个是直播功能。


直播功能可以使用户观看由影响者或品牌制作的直播节目,以及直接通过TikTok购买其产品。





原文转载:http://www.shaoqun.com/a/586607.html

跨境电商:https://www.ikjzd.com/

indiegogo:https://www.ikjzd.com/w/265

鸥鹭:https://www.ikjzd.com/w/2568


据了解,TikTok近日发布了一个名为TikTokShop的新业务单元,并在目前公开的TikTokShopSellerUniversity(卖家大学)页面发布了包括商店知识产权政策、商店禁止/限制产品指南、产品上架指南、订单运输指南,以及订单取消、退货和退款指南等多个商店条款。TikTok正在印度尼西亚率先开展TikTok商店灰度测试,可通过Beta版的第三方卖方计划TikTokShop获取,目前
黄劲:https://www.ikjzd.com/w/2426
深诺互动:https://www.ikjzd.com/w/2746
俄罗斯灰色清关:https://www.ikjzd.com/w/1409
deal 站大全,希望帮到大家:https://www.ikjzd.com/tl/22832
揭秘2021跨境新赛道,这一品类还留有10亿美元级的空白市场待挖:https://www.ikjzd.com/home/141696
Wish高阶运营!新品期每天30单小目标的打造办法!:https://www.ikjzd.com/home/101265

Google Ads使用过程中容易出现的误区

Google Ads(Google广告投放)是对那些在全球最受欢迎的搜索引擎Google上有目的性地搜索你家产品的潜在客户进行精确定位的好办法。

尽管搜索引擎营销的威力与潜力无穷,但它毕竟还是最难驾驭且技术性较强的渠道之一。如果你无法成功驾驭它,那么它可能会帮你"烧掉"不少钱。

以下是最为常见的Google Ads使用误区之一,如果你想获得更好的广告效果,就需要注意这个问题:未使用正确的关键词匹配模式。

使用关键词匹配模式的方法有好几种。虽然关键词匹配模式是你管理不同搜索词的基本途径,但你的最终出价对象还是搜索词(search terms)。

举个例子,假设Suzy在她的海洋商店(Sea Store)售卖贝壳。那么Suzy可以通过以下几种路径来对关键词进行出价:

广泛匹配

Google一般会从默认的广泛匹配开始,这样你就有了一组广泛的搜索词可以利用,但是这些其实并不算最高效的投资。

如果Suzy的关键词是Suzy Sea Shells,她可能会为以下几个搜索词出价:

  • Sea Shells

  • Ocean shell

  • Suzy Sea

当你选择为那些会显示不太相关的广告结果增加搜索请求模式时,通过找出那些真正起到转化作用的特定关键词,进而挖掘一些值得你出价的其它关键词可能不失为一种好策略。

短语匹配

短语匹配会使你的搜索词更精准一些。它能够通过对你希望出价的搜索词用双引号("")标出,从而帮你识别最重要的一些关键词或短语。

例如,Suzy希望那些会购买她家Sea Shells产品的潜在客户能够搜索"Suzy Sea Shells"。

如果她的关键词是"Suzy Sea Shells",那么她很可能会为与以下搜索词类似的词出价:

  • "Suzy's Sea Shells"at the shore

  • "Suzy's Sea Shells" at the sea store

  • "Sea store ","suzy sea shells"

精准匹配

如果你知道自己想要出价的准确搜索词的话,那么使用精准匹配会更有效。我们假设Suzy已经知道人们在Google搜索她家商店时最经常输入的搜索词是"Suzy Sea Store"。

所以如果她想要定位的关键词是"Suzy Sea Shells",那么她只会为"Suzy Sea Shells"这一搜索词出价。

广泛匹配修饰符

广泛匹配修饰符对很多品牌来说是一个很不错的匹配模式。

你可以预先选定一组搜索词,但是需要在特定的搜索词末尾添加加号(+)来确保它们包含最为重要的关键词,这样的话,一旦被搜索,它们就会以任意顺序出现。

假设Suzy的Sea Store想要定位那些搜索"shells from the sea"的用户,那么她就可以通过使用+sea+shells来扩大定位范围。

你可以先研究一些关键词,并尝试对你的关键词进行定位与分类。然后你可以从广泛匹配或广泛匹配修饰符入手,把注意力重点放在能够转化的热门搜索词上。

你还可以进一步使用其它搜索类型和围绕热门关键词来设计用户体验。



文章来源:https://www.ikjzd.com/home/142616

跨境电商:https://www.ikjzd.com/

贝恩:https://www.ikjzd.com/w/1336

欧麦:https://www.ikjzd.com/w/2085

blackbird:https://www.ikjzd.com/w/950

Google Ads使用过程中容易出现的误区

GoogleAds(Google广告投放)是对那些在全球最受欢迎的搜索引擎Google上有目的性地搜索你家产品的潜在客户进行精确定位的好办法。尽管搜索引擎营销的威力与潜力无穷,但它毕竟还是最难驾驭且技术性较强的渠道之一。如果你无法成功驾驭它,那么它可能会帮你"烧掉"不少钱。以下是最为常见的GoogleAds使用误区之一,如果你想获得更好的广告效果,就需要注意这个问题:未使用正确的关键词匹配模式。使

15分惨败!NBA爆大冷:东部亚军轰然倒下,对手轰23记三分创纪录_老鹰

原标题:15分惨败!NBA爆大冷:东部亚军轰然倒下,对手轰23记三分创纪录

北京时间2月25日8点30分,NBA常规赛,凯尔特人112-127不敌老鹰,爆出冷门。上赛季,凯尔特人是东部亚军。老鹰此役轰进23记三分球,创造队史纪录,此前纪录是在2018年10月22日、2019年3月2日以及2019年4月1日创造(22记三分球)。

赛前,凯尔特人战绩是15胜16负,暂时排名东部第6。老鹰则是13胜18负,位列东部第11。虽然凯尔特人胜率不足50%,但他们却有两位全明星,分别是塔图姆和杰伦·布朗。上赛季,凯尔特人打进东部决赛,最终2-4不敌热火。

第一节,斯内尔三分球命中,老鹰10-9领先。随后,斯内尔继续飙进三分球,13-9。塔图姆撤步三分球命中,追到13-13。15-15后,老鹰连续得分,特雷·杨超远三分球命中,26-15,老鹰轰出11-0。凯尔特人随后反扑,爱德华兹一条龙上篮得手,凯尔特人追到27-30。随后,老鹰又是一波流,连得10分,首节结束,老鹰40-27领先,三分球11中8。

第二节,双方差距还在扩大,加里纳利篮下轻松空接得分,47-27,分差20分。加里纳利三分球命中,50-27。也就是说,老鹰从第一节到第二局开局,轰出20-0,卡佩拉篮下轻松打进,68-41,分差来到27分。上半场,老鹰领先23分,72-49。

第三节,凯尔特人不想轻易放弃,杰伦·布朗达成2+1,56-73。但无奈,老鹰此役三分球火力太猛,加里纳利再次三分球,86-65,老鹰领先。前三节,老鹰三分球33中19,凯尔特人23中3,差距太大。三节比赛,99-78,老鹰领先21分。

第四节,比赛已经沦为垃圾时间,最终凯尔特人爆冷输球。

特雷·杨33分7助攻4篮板,加里纳利38分,其中三分球12中10,彻底投疯了。返回搜狐,查看更多

责任编辑:

原文转载:http://sport.shaoqun.com/a/447746.html

跨境电商:https://www.ikjzd.com/

sonar:https://www.ikjzd.com/w/215

外贸圈:https://www.ikjzd.com/w/1083


原标题:15分惨败!NBA爆大冷:东部亚军轰然倒下,对手轰23记三分创纪录北京时间2月25日8点30分,NBA常规赛,凯尔特人112-127不敌老鹰,爆出冷门。上赛季,凯尔特人是东部亚军。老鹰此役轰进23记三分球,创造队史纪录,此前纪录是在2018年10月22日、2019年3月2日以及2019年4月1日创造(22记三分球)。赛前,凯尔特人战绩是15胜16负,暂时排名东部第6。老鹰则是13胜18负,
跨境通电子商务网站:https://www.ikjzd.com/w/1329
数魔跨境:https://www.ikjzd.com/w/1425.html
tenso:https://www.ikjzd.com/w/1552
亚马逊SEO优化,快速提升产品排名!:https://www.ikjzd.com/home/21898
亚马逊Prime一日送达服务成真的"代价":投入近十亿美元资金:https://www.ikjzd.com/home/109242
黑五网一备战已打响!决胜攻略来此!:https://www.ikjzd.com/home/132465

新规!FBA将不接收这类产品……

今天你是否依然在为物流发愁?美国暴风雪依旧,亚马逊FBA又紧急出台了最新退货政策应对暴风雪带来的物流难题。

 

此外,亚马逊FBA还表示,4月15日起,巧克力、软糖等可熔化的产品将不被FBA接收,售卖相关产品的卖家得注意赶紧移库存了。

 

有忧就有喜,日前亚马逊宣布4月1日起将提高欧洲站FBA商品最大尺寸及重量标准,届时一些"重型"和"笨重"产品就能成功加入FBA大家庭了。另外,亚马逊还宣布将自行车配件类目的平台销售佣金费率从原本的15%下调至8%,新规将从4月1日正式生效。

 

亚马逊公布最新FBA规则,这些产品受益

 

小编从亚马逊方面了解到,4月1日起,欧洲站FBA商品最大尺寸及重量和标准将会得到提高,下面是公告内容↓↓↓

 

1.png

 

2021年4月1日起,我们将提高英国、德国、法国、意大利和西班牙的FBA的最大尺寸和重量标准。这将允许卖家使用FBA处理商品尺寸长度>175厘米、重量>31.5公斤、宽度>360厘米的单箱订单。

 

据了解,目前某些FBA服务(例如泛欧洲FBA和欧洲配送网络)并不适用于重型FBA和大型FBA项目,因此某些售卖家具、家电、跑步机等大宗产品的卖家届时将从新政中受益。

 

4月15日起这类产品将不被FBA接收

 

 

除了欧洲站FBA商品最大尺寸及重量和标准将会得到提高,亚马逊FBA卖家还要注意,4月15日起巧克力、软糖等可熔化的存货将不被FBA接收。

 

2.jpg

 

从卖家收到的邮件可以得出以下信息↓↓↓

 

2021年4月15日起,亚马逊FBA将不会履行或接收可熔化的产品,自2021年10月16日起,将再次接收可熔化的产品。

 

据了解,"可熔化"指的是所有热敏产品,包括但不限于巧克力、果胶、果冻和蜡类产品。如果卖家无法在4月15日之前移动产品,需要提交移除订单。如果在该日期之前未提交清除订单,则将对您的可熔化物料进行收费处理。

 

这个消息对售卖相关产品的卖家来说将是一个不小的打击。

 

暴风雪袭击,FBA退货处理延迟

 

 

坏事成双,因为最近美国遭受暴风雪天气的影响,物流会有一定程度的延误,而亚马逊也注意到了这一点,出具了一则有关退货的公告。

 

3.png

 

亚马逊昨日发布了一则《由于严峻的冬季天气,退货处理暂时延迟》的公告,公告中表示,由于严重的冬季风暴席卷美国大部分地区,因此我们在接收和处理客户退货方面遇到了延迟。对于某些退回的商品,将延迟将库存重新存入您的帐户或补偿这些物品的费用,您不需要对退货采取任何措施。

 

美国港口严重拥堵,物流延误再次加剧

 

一场暴风雪除了让退货变得困难,更是让美向物流情况雪上加霜。

 

获悉,近日美国港口严重拥堵,不少卖家的货物都有所延误,据了解,目前美国港口附近有很多货船都无法到港卸货。

 

据外媒报道,近日南加州港口大约有60艘船停泊在等待泊位的锚点上,南加州港口的集装箱船积压情况丝毫没有减弱的迹象。洛杉矶执行董事吉恩·塞罗卡(Gene Seroka)表示,圣佩德罗湾地区的锚点上有约50艘船正在等待洛杉矶和长滩的泊位。

 

4.jpg

 

加上目前美国极端的暴风雪天气,堵塞问题已经蔓延到整个北美地区,小编也采访了一位货代,货代表示:"目前美森、以星会延误一个星期左右,盐田延误起码半个月。"

 

货代称:"拥堵加剧码头工人的感染人数上升,陆上的派送缓慢导致港口更加拥堵。大船卸柜时间持续慢状态,大部分的船到港后,无法靠泊卸船,货船排队等待靠泊时间需要8-14天。"

 

美国的巨额进口压倒了美国的两个最大的集装箱枢纽,分别位于洛杉矶和长滩。根据洛杉矶信号港的数据,1月份的进口量为51.8万标准箱,相当于去年第一季度港口全部进口集装箱吞吐量的60%。

 

此外,Signal 对2月剩余一周的预测表明,洛杉矶本月将达到500,000 TEU的进口量,其中在3月第一周到达船上的进口集装箱比2020年同期增长217%。

 

据外媒报道,虽然有一些人希望积压的货物可能会得到缓解,但本周美国全国零售联合会(National Retail Federation)预计,美国主要港口的零售商品进口将至少在年中继续创下纪录,这意味着托运人和承运人可以预计,随着2021年的进展,延迟将继续,并可能进一步恶化。

 

有知情货代表示,美西港口爆堵状态之下,多家船公司已宣布了新的跨太平洋航线服务不再停靠洛杉矶-长滩。

 

按照种种说法来看,2021年的物流情况也是不容乐观,有货代提醒卖家:"去年年底的时候,大量亚马逊卖家疯狂补货,因而导致盐田港拥堵严重,加上国外现在的情况,年底补的货物基本上都会有延误,各位卖家要做好心理准备。"

 

自行车配件类目佣金费率下调至8%

 

虽然港口拥堵依旧,但是亚马逊这个类目的佣金费率却下降了。

 

获悉,近日亚马逊英国站发布了一则《减少自行车配件的介绍费》的公告,公告中表示,为了帮助您的业务,我们创建了一个新的"自行车配件"类别,并降低了该类别中出售物品的推荐费。

 

2021年4月1日开始,所有亚马逊英国和欧洲市场的推荐费将为8%。不过卖家需要注意的是,这里不包括英国2%的数字服务税和法国,意大利和西班牙的3%的数字服务税。

 

先前的费用为总销售价格的15%,总销售价格是买方支付的价格,包括商品价格以及任何运输或礼品包装费。

 

据了解自行车配件类别中包括以下产品类型

 

Bike backpacks, bags and panniers

Bike bells

Bike covers

Bike locks (cable, chain, combination, folding, mount)

Bike mirrors

Bike pumps

Bike racks and stands

Bike trainers

Bottle cages

Fenders

Lighting parts and accessories

Quick releases

Rim bands

Saddle covers

Training wheels

Valve caps

 

在欧洲站售卖这些产品的亚马逊卖家均能从新政中受益。





原文转载:http://www.shaoqun.com/a/585614.html

跨境电商:https://www.ikjzd.com/

贝贝特卖:https://www.ikjzd.com/w/1321

easybuy:https://www.ikjzd.com/w/2162


今天你是否依然在为物流发愁?美国暴风雪依旧,亚马逊FBA又紧急出台了最新退货政策应对暴风雪带来的物流难题。此外,亚马逊FBA还表示,4月15日起,巧克力、软糖等可熔化的产品将不被FBA接收,售卖相关产品的卖家得注意赶紧移库存了。有忧就有喜,日前亚马逊宣布4月1日起将提高欧洲站FBA商品最大尺寸及重量标准,届时一些"重型"和"笨重"产品就能成功加入FBA大家庭了。另外,亚马逊还宣布将自行车配件类目的
壹米滴答:https://www.ikjzd.com/w/2314
商标抢注:https://www.ikjzd.com/w/1053
鸥鹭:https://www.ikjzd.com/w/2568
AMZ-MAX:https://www.ikjzd.com/w/2728
不要让FBA退货损害你的利润!这几招教你最小化损失……:https://www.ikjzd.com/home/114466
李嘉诚强势出手,华为再签200亿5G大单!:https://www.ikjzd.com/home/96036

快速结算成为主流!韩国电商平台竞争激烈

据悉,韩国电商平台的竞争日益激烈,在线购物商场陆续推出"快速结算"方式,缩短结算的时间提高消费者购物体验,保持企业竞争力。

 

目前,韩国政界正在讨论将在线购物中心的结算周期法制化的方案,预计这种趋势将会持续下去。

 

24日,根据韩国电子商务行业的消息,在线购物中心进行清算的方式是购物中心完成商品购买后,由在线购物中心的业主预付款,等到卖家消费者发送商品的明细被确认之后,再支付给卖家。一般在消费"确定购买"之后进行货款支付,最长需要14天左右。

 

据了解,11st推出"快速结算"方式,基本结算系统是消费者确定购买后,第二天进行全额结算的方式。如果消费者不亲自确定购买,将在完成配送后的第8天自动完成配送。

 

另一方面"快速结算"是当天将产品交付给客户后第二天结算90%的结算方式确认购买后,剩余的10%将清算。

 

11st相关人士表示:"从去年10月开始实施至今,接受快速结算的卖家超过了2万2千名。"

 

Naver Financial还为智能商店卖家提供"快速结算"服务,以在交付完成后的第二天进行结算。配送结束后的第二天,3个月以上连续月销售100万韩元以上符合条件的卖家将获得90%的销售货款。

 

ebay表示,对使用"微笑配送"的卖家实行商品出库日第二天清算的政策。

 

eBay有关负责人介绍说:"由于购买者订购以后的所有过程都由微笑配送代理,因此可以提前结算货款。超快速结算对于资金周转管理非常重要的中小规模卖家来说很有帮助。"

 

相比之下,以社交商务起家的CoupangWeMef和Timon清算周期相对较长据悉,这些购物中心需要结算时间长达两个月。

 

WeMef相关人士表示:"我们的结算结构与其他网上购物中心不同,很难立即减少结算周期为了缩短结算周期,我们将继续努力。"

 

上月《电子商务等消费者保护相关法律》修订案被发起,其内容为,通信销售企业自消费者收到商品之日起30天内向卖家支付货款,如果违反该规定,将征收罚款。

 

业界相关人士表示:"法制化虽然需要一定的时间,但是从保护小工商业者的角度来看,缩短算周期是必须要实行下去的。"





原文转载:http://www.shaoqun.com/a/585609.html

跨境电商:https://www.ikjzd.com/

李群:https://www.ikjzd.com/w/1767

菜鸟网络:https://www.ikjzd.com/w/1547


据悉,韩国电商平台的竞争日益激烈,在线购物商场陆续推出"快速结算"方式,缩短结算的时间,提高消费者购物体验,保持企业竞争力。目前,韩国政界正在讨论将在线购物中心的结算周期法制化的方案,预计这种趋势将会持续下去。24日,根据韩国电子商务行业的消息,在线购物中心进行清算的方式是在购物中心完成商品购买后,由在线购物中心的业主预付款,等到卖家向消费者发送商品的明细被确认之后,再支付给卖家。一般在消费者"确
pocket:https://www.ikjzd.com/w/1903
灰色清关:https://www.ikjzd.com/w/1409
亚马逊全球开店制造:https://www.ikjzd.com/w/204.html
突发!马士基MSC联盟超大集装箱船出事,270个货柜落水!:https://www.ikjzd.com/home/14360
注意!新加坡将为所有靠港邮轮和客船减免50%港口费:https://www.ikjzd.com/home/116443
口述:我和良家妇女火热的婚外关系(4/4):http://lady.shaoqun.com/m/a/38731.html

又长又细,万字长文带你解读Redisson分布式锁的源码

前言

上一篇文章写了Redis分布式锁的原理和缺陷,觉得有些不过瘾,只是简单的介绍了下Redisson这个框架,具体的原理什么的还没说过呢。趁年前项目忙的差不多了,反正闲着也是闲着,不如把Redisson的源码也学习一遍好了。

虽说是一时兴起,但仔细研究之后发现Redisson的源码解读工作量还是挺大的,其中用到了大量的Java并发类,并且引用了Netty作为通信工具,实现与Redis组件的远程调用,这些知识点如果要全部讲解的话不太现实,本文的重点主要是关于Redisson分布式锁的实现原理,所以网络通信和并发原理这块的代码解读不会太仔细,有不足之处还望见谅!

Redis 发布订阅

之前说过,分布式锁的核心功能其实就三个:加锁、解锁、设置锁超时。这三个功能也是我们研究Redisson分布式锁原理的方向。

在学习之前,我们有必要先了解一个知识点,就是有关Redis的发布订阅功能。

Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息,发布者可以向指定的渠道 (channel) 发送消息,订阅者如果订阅了该频道的话就能收到消息,从而实现多个客户端的通信效果。

订阅的命令是SUBSCRIBE channel[channel ...],可以订阅一个或多个频道,当有新消息通过PUBLISH命令发送给频道时,订阅者就能收到消息,就好像这样

开启两个客户端,一个订阅了频道channel1,另一个通过PUBLISH发送消息后,订阅的那个就能收到了,靠这种模式就能实现不同客户端之间的通信。

当然,关于这种通信模式有哪些妙用场景我们就不展开了,大家可以自己去网上查阅一下,我们的主角还是Redisson,热身完毕,该上主菜了。

Redisson源码

在使用Redisson加锁之前,需要先获取一个RLock实例对象,有了这个对象就可以调用lock、tryLock方法来完成加锁的功能

Config config = new Config();
config.useSingleServer()
  .setPassword("")
  .setAddress("redis://127.0.0.1:6379");
RedissonClient redisson = Redisson.create(config);
// RLock对象
RLock lock = redisson.getLock("myLock");

配置好对应的host,然后就可以创建一个RLock对象。RLock是一个接口,具体的同步器需要实现该接口,当我们调用redisson.getLock()时,程序会初始化一个默认的同步执行器RedissonLock

这里面初始化了几个参数,

commandExecutor:异步的Executor执行器,Redisson中所有的命令都是通过...Executor 执行的 ;

id:唯一ID,初始化的时候是用UUID创建的;

internalLockLeaseTime:等待获取锁时间,这里读的是配置类中默认定义的,时间为30秒;

同时,图片里我还标注了一个方法getEntryName,返回的是 "ID :锁名称" 的字符串,代表的是当前线程持有对应锁的一个标识,这些参数有必要留个印象,后面的源码解析中经常会出现。

说完了初始化的东西,我们就可以开始学习加锁和解锁的源码了。

加锁

Redisson的加锁方法有两个,tryLocklock,使用上的区别在于tryLock可以设置锁的过期时长leaseTime和等待时长waitTime,核心处理的逻辑都差不多,我们先从tryLock讲起。

tryLock

代码有点长啊。。。整成图片不太方便,直接贴上来吧,

/**
 * @param waitTime 等待锁的时长 
 * @param leaseTime 锁的持有时间 
 * @param unit 时间单位
 * @return
 * @throws InterruptedException
 */
public boolean tryLock(long waitTime, long leaseTime, TimeUnit unit) throws InterruptedException {    
        // 剩余的等待锁的时间
        long time = unit.toMillis(waitTime);
        long current = System.currentTimeMillis();
        
        final long threadId = Thread.currentThread().getId();
        // 尝试获取锁,如果没取到锁,则返回锁的剩余超时时间
        Long ttl = tryAcquire(leaseTime, unit, threadId);
        // ttl为null,说明可以抢到锁了,返回true
        if (ttl == null) {
            return true;
        }
        
        // 如果waitTime已经超时了,就返回false,代表申请锁失败
        time -= (System.currentTimeMillis() - current);
        if (time <= 0) {
            acquireFailed(threadId);
            return false;
        }
        
        current = System.currentTimeMillis();
        // 订阅分布式锁, 解锁时进行通知,看,这里就用到了我们上面说的发布-订阅了吧
        final RFuture<RedissonLockEntry> subscribeFuture = subscribe(threadId);
        // 阻塞等待锁释放,await()返回false,说明等待超时了
        if (!await(subscribeFuture, time, TimeUnit.MILLISECONDS)) {
            if (!subscribeFuture.cancel(false)) {
                subscribeFuture.addListener(new FutureListener<RedissonLockEntry>() {
                    @Override
                    public void operationComplete(Future<RedissonLockEntry> future) throws Exception {
                        if (subscribeFuture.isSuccess()) {
                         // 等待都超时了,直接取消订阅
                            unsubscribe(subscribeFuture, threadId);
                        }
                    }
                });
            }
            acquireFailed(threadId);
            return false;
        }

        try {
            time -= (System.currentTimeMillis() - current);
            if (time <= 0) {
                acquireFailed(threadId);
                return false;
            }
         // 进入死循环,反复去调用tryAcquire尝试获取锁,跟上面那一段拿锁的逻辑一样
            while (true) {
                long currentTime = System.currentTimeMillis();
                ttl = tryAcquire(leaseTime, unit, threadId);
                // lock acquired
                if (ttl == null) {
                    return true;
                }

                time -= (System.currentTimeMillis() - currentTime);
                if (time <= 0) {
                    acquireFailed(threadId);
                    return false;
                }

                // waiting for message
                currentTime = System.currentTimeMillis();
                if (ttl >= 0 && ttl < time) {
                    getEntry(threadId).getLatch().tryAcquire(ttl, TimeUnit.MILLISECONDS);
                } else {
                    getEntry(threadId).getLatch().tryAcquire(time, TimeUnit.MILLISECONDS);
                }

                time -= (System.currentTimeMillis() - currentTime);
                if (time <= 0) {
                    acquireFailed(threadId);
                    return false;
                }
            }
        } finally {
            unsubscribe(subscribeFuture, threadId);
        }
//        return get(tryLockAsync(waitTime, leaseTime, unit));
    }

代码还是挺长的,不过流程也就两步,要么线程拿到锁返回成功;要么没拿到锁并且等待时间还没过就继续循环拿锁,同时监听锁是否被释放。

拿锁的方法是tryAcquire,传入的参数分别是锁的持有时间,时间单位以及代表当前线程的ID,跟进代码查看调用栈,它会调到一个叫做tryAcquireAsync的方法:

private Long tryAcquire(long leaseTime, TimeUnit unit, long threadId) {
    return get(tryAcquireAsync(leaseTime, unit, threadId));
}

private <T> RFuture<Long> tryAcquireAsync(long leaseTime, TimeUnit unit, final long threadId) {
        // 如果有设置锁的等待时长的话,就直接调用tryLockInnerAsync方法获取锁
        if (leaseTime != -1) {
            return tryLockInnerAsync(leaseTime, unit, threadId, RedisCommands.EVAL_LONG);
        }
        // 没有设置等待锁的时长的话,加多一个监听器,也就是调用lock.lock()会跑的逻辑,后面会说
        RFuture<Long> ttlRemainingFuture = tryLockInnerAsync(commandExecutor.getConnectionManager().getCfg().getLockWatchdogTimeout(), TimeUnit.MILLISECONDS, threadId, RedisCommands.EVAL_LONG);
        ttlRemainingFuture.addListener(new FutureListener<Long>() {
            @Override
            public void operationComplete(Future<Long> future) throws Exception {
                if (!future.isSuccess()) {
                    return;
                }

                Long ttlRemaining = future.getNow();
                // lock acquired
                if (ttlRemaining == null) {
                    scheduleExpirationRenewal(threadId);
                }
            }
        });
        return ttlRemainingFuture;
    }

我们继续跟,看看tryLockInnerAsync方法的源码:

<T> RFuture<T> tryLockInnerAsync(long leaseTime, TimeUnit unit, long threadId, RedisStrictCommand<T> command) {
    internalLockLeaseTime = unit.toMillis(leaseTime);

    return commandExecutor.evalWriteAsync(getName(), LongCodec.INSTANCE, command,
              "if (redis.call('exists', KEYS[1]) == 0) then " +
                  "redis.call('hset', KEYS[1], ARGV[2], 1); " +
                  "redis.call('pexpire', KEYS[1], ARGV[1]); " +
                  "return nil; " +
              "end; " +
              "if (redis.call('hexists', KEYS[1], ARGV[2]) == 1) then " +
                  "redis.call('hincrby', KEYS[1], ARGV[2], 1); " +
                  "redis.call('pexpire', KEYS[1], ARGV[1]); " +
                  "return nil; " +
              "end; " +
              "return redis.call('pttl', KEYS[1]);",
                Collections.<Object>singletonList(getName()), internalLockLeaseTime, getLockName(threadId));
}
String getLockName(long threadId) {
    return id + ":" + threadId;
}

这里就是底层的调用栈了,直接操作命令,整合成lua脚本后,调用netty的工具类跟redis进行通信,从而实现获取锁的功能。

这段脚本命令还是有点意思的,简单解读一下:

  • 先用exists key命令判断是否锁是否被占据了,没有的话就用hset命令写入,key为锁的名称,field为"客户端唯一ID:线程ID",value为1;
  • 锁被占据了,判断是否是当前线程占据的,是的话value值加1;
  • 锁不是被当前线程占据,返回锁剩下的过期时长;

命令的逻辑并不复杂,但不得不说,作者的设计还是很有心的,用了redis的Hash结构存储数据,如果发现当前线程已经持有锁了,就用hincrby命令将value值加1,value的值将决定释放锁的时候调用解锁命令的次数,达到实现锁的可重入性效果。

每一步命令对应的逻辑我都在下面的图中标注了,大家可以读一下:

我们继续跟代码吧,根据上面的命令可以看出,如果线程拿到锁的话,tryLock方法会直接返回true,万事大吉。

拿不到的话,就会返回锁的剩余过期时长,这个时长有什么作用呢?我们回到tryLock方法中死循环的那个地方:

这里有一个针对waitTime和key的剩余过期时间大小的比较,取到二者中比较小的那个值,然后用Java的Semaphore信号量的tryAcquire方法来阻塞线程。

那么Semaphore信号量又是由谁控制呢,何时才能release呢。这里又需要回到上面来看,各位看官应该还记得,我们上面贴的tryLock代码中还有这一段:

current = System.currentTimeMillis();
// 订阅分布式锁, 解锁时进行通知
final RFuture<RedissonLockEntry> subscribeFuture = subscribe(threadId);

订阅的逻辑显然是在subscribe方法里,跟着方法的调用链,它会进入到PublishSubscribe.Java中:

这段代码的作用在于将当前线程的threadId添加到一个AsyncSemaphore中,并且设置一个redis的监听器,这个监听器是通过redis的发布、订阅功能实现的。

一旦监听器收到redis发来的消息,就从中获取与当前thread相关的,如果是锁被释放的消息,就立马通过操作Semaphore(也就是调用release方法)来让刚才阻塞的地方释放。

释放后线程继续执行,仍旧是判断是否已经超时。如果还没超时,就进入下一次循环再次去获取锁,拿到就返回true,没有拿到的话就继续流程。

这里说明一下,之所以要循环,是因为锁可能会被多个客户端同时争抢,线程阻塞被释放之后的那一瞬间很可能还是拿不到锁,但是线程的等待时间又还没过,这个时候就需要重新跑循环去拿锁。

这就是tryLock获取锁的整个过程了,画一张流程图的话表示大概是这样:

lock

除了tryLock,一般我们还经常直接调用lock来获取锁,lock的拿锁过程跟tryLock基本是一致的,区别在于lock没有手动设置锁过期时长的参数,该方法的调用链也是跑到tryAcquire方法来获取锁的,不同的是,它会跑到这部分的逻辑:

这段代码做了两件事:

1、预设30秒的过期时长,然后去获取锁

2、开启一个监听器,如果发现拿到锁了,就开启定时任务不断去刷新该锁的过期时长

刷新过期时长的方法是scheduleExpirationRenewal,贴一下源码吧:

private void scheduleExpirationRenewal(final long threadId) {
 // expirationRenewalMap是一个ConcurrentMap,存储标志为"当前线程ID:key名称"的任务
        if (expirationRenewalMap.containsKey(getEntryName())) {
            return;
        }

        Timeout task = commandExecutor.getConnectionManager().newTimeout(new TimerTask() {
            @Override
            public void run(Timeout timeout) throws Exception {
                // 检测锁是否存在的lua脚本,存在的话就用pexpire命令刷新过期时长
                RFuture<Boolean> future = commandExecutor.evalWriteAsync(getName(), LongCodec.INSTANCE, RedisCommands.EVAL_BOOLEAN,
                        "if (redis.call('hexists', KEYS[1], ARGV[2]) == 1) then " +
                            "redis.call('pexpire', KEYS[1], ARGV[1]); " +
                            "return 1; " +
                        "end; " +
                        "return 0;",
                          Collections.<Object>singletonList(getName()), internalLockLeaseTime, getLockName(threadId));
                
                future.addListener(new FutureListener<Boolean>() {
                    @Override
                    public void operationComplete(Future<Boolean> future) throws Exception {
                        expirationRenewalMap.remove(getEntryName());
                        if (!future.isSuccess()) {
                            log.error("Can't update lock " + getName() + " expiration", future.cause());
                            return;
                        }
                        
                        if (future.getNow()) {
                            // reschedule itself
                            scheduleExpirationRenewal(threadId);
                        }
                    }
                });
            }
        }, internalLockLeaseTime / 3, TimeUnit.MILLISECONDS);

        if (expirationRenewalMap.putIfAbsent(getEntryName(), task) != null) {
            task.cancel();
        }
    }

代码的流程比较简单,大概就是开启一个定时任务,每隔internalLockLeaseTime / 3的时间(这个时间是10秒)就去检测锁是否还被当前线程持有,是的话就重新设置过期时长internalLockLeaseTime,也就是30秒的时间。

而这些定时任务会存储在一个ConcurrentHashMap对象expirationRenewalMap中,存储的key就为"线程ID:key名称",如果发现expirationRenewalMap中不存在对应当前线程key的话,定时任务就不会跑,这也是后面解锁中的一步重要操作。

上面这段代码就是Redisson中所谓的"看门狗"程序,用一个异步线程来定时检测并执行的,以防手动解锁之前就过期了。

其他的逻辑就跟tryLock()基本没什么两样啦,大家看一下就知道了

解锁

有拿锁的方法,自然也就有解锁。Redisson分布式锁解锁的上层调用方法是unlock(),默认不用传任何参数

@Override
    public void unlock() {
     // 发起释放锁的命令请求
        Boolean opStatus = get(unlockInnerAsync(Thread.currentThread().getId()));
        if (opStatus == null) {
            throw new IllegalMonitorStateException("attempt to unlock lock, not locked by current thread by node id: "
                    + id + " thread-id: " + Thread.currentThread().getId());
        }
        if (opStatus) {
         // 成功释放锁,取消"看门狗"的续时线程
            cancelExpirationRenewal();
        }
    }

解锁相关的命令操作在unlockInnerAsync方法中定义,

又是一大串的lua脚本,比起前面加锁那段脚本的命令稍微复杂了点,不过没关系,我们简单梳理一下,命令的逻辑大概是这么几步:

1、判断锁是否存在,不存在的话用publish命令发布释放锁的消息,订阅者收到后就能做下一步的拿锁处理;

2、锁存在但不是当前线程持有,返回空置nil;

3、当前线程持有锁,用hincrby命令将锁的可重入次数-1,然后判断重入次数是否大于0,是的话就重新刷新锁的过期时长,返回0,否则就删除锁,并发布释放锁的消息,返回1;

当线程完全释放锁后,就会调用cancelExpirationRenewal()方法取消"看门狗"的续时线程

void cancelExpirationRenewal() {
 // expirationRenewalMap移除对应的key,就不会执行当前线程对应的"看门狗"程序了
    Timeout task = expirationRenewalMap.remove(getEntryName());
    if (task != null) {
        task.cancel();
    }
}

这就是释放锁的过程了,怎么样,是不是还是比较简单的,阅读起来比加锁那份代码舒服多了,当然啦,简单归简单,为了方便你们理清整个分布式锁的过程,我当然还是费心费力的给你们画流程图展示下啦(就冲这点,是不是该给我来个三连啊,哈哈):

RedLock

以上就是Redisson分布式锁的原理讲解,总的来说,就是简单的用lua脚本整合基本的set命令实现锁的功能,这也是很多Redis分布式锁工具的设计原理。除此之外,Redisson还支持用"RedLock算法"来实现锁的效果,这个工具类就是RedissonRedLock

用法也很简单,创建多个Redisson Node, 由这些无关联的Node就可以组成一个完整的分布式锁

RLock lock1 = Redisson.create(config1).getLock(lockKey);
RLock lock2 = Redisson.create(config2).getLock(lockKey);
RLock lock3 = Redisson.create(config3).getLock(lockKey);

RedissonRedLock redLock = new RedissonRedLock(lock1, lock2, lock3);
try {
   redLock.lock();
} finally {
   redLock.unlock();
}

RedLock算法原理方面我就不细说了,大家有兴趣可以看我之前的文章,或者是网上搜一下,简单的说就是能一定程度上能有效防止Redis实例单点故障的问题,但并不完全可靠,不管是哪种设计,光靠Redis本身都是无法保证锁的强一致性的。

还是那句话,鱼和熊掌不可兼得,性能和安全方面也往往如此,Redis强大的性能和使用的方便足以满足日常的分布式锁需求,如果业务场景对锁的安全隐患无法忍受的话,最保底的方式就是在业务层做幂等处理。

总结

看了本文的源码解析,相信各位看官对Redisson分布式锁的设计也有了足够的了解,当然啦,虽然是讲解源码,我们的主要精力还是放在分布式锁的原理上,一些无关流程的代码就没有带大家字斟酌句的解读了,大家有兴趣的话可以自己去阅读看看,源码中很多地方都展示了一些基础并发工具和网络通信的妙用之处,学习一下还是挺有收获的。

最后我还是想吐槽一下,Redisson的注释是真的少啊。。。。。。

如果您觉得文章有用的话,欢迎点个赞支持一下,这将是对我创作的最好鼓励!

作者:鄙人薛某,一个不拘于技术的互联网人,喜欢用通俗易懂的语言来解构后端技术的知识点,想看更多精彩文章的可以关注我的公众号,微信搜索【鄙人薛某】即可关注









原文转载:http://www.shaoqun.com/a/585592.html

跨境电商:https://www.ikjzd.com/

智赢:https://www.ikjzd.com/w/1511

asinseed:https://www.ikjzd.com/w/533


前言上一篇文章写了Redis分布式锁的原理和缺陷,觉得有些不过瘾,只是简单的介绍了下Redisson这个框架,具体的原理什么的还没说过呢。趁年前项目忙的差不多了,反正闲着也是闲着,不如把Redisson的源码也学习一遍好了。虽说是一时兴起,但仔细研究之后发现Redisson的源码解读工作量还是挺大的,其中用到了大量的Java并发类,并且引用了Netty作为通信工具,实现与Redis组件的远程调用,
gtin:https://www.ikjzd.com/w/136
贝恩资本:https://www.ikjzd.com/w/1336
声网:https://www.ikjzd.com/w/2176
应对旺季大卖!1个月、50名员工,出资1900多万!:https://www.ikjzd.com/home/11305
史上最前沿的测评养号系统,亚马逊测评如何降低成本,提高效率,搭建稳定的IP环境?:https://www.ikjzd.com/home/132151
别慌!提单丢失可以补救!:https://www.ikjzd.com/home/93872

有马甲线就是低体脂率!你的体脂率合格了吗

核心提示:不少人听到体脂率这个名称的时候十分熟悉,但是让大家说出如何测体脂率的时候却没有几个人能够准确说出来,专业人士指出目前检测体脂率的方法主要有四种,分别是体脂称和手握仪器、体脂钳检测、静水体重测量以及DEXA扫描。

相信大家都是听说过体脂率这个名称的,特别是喜欢健身的朋友会经常测量一下自己的体脂率,来看看最近健身到底有没有效果,体脂率说白了就是身体里面脂肪含量所占比例,那么如何测体脂率?专业人士指出测量的方法有好几种,下面就给大家做详细的介绍。


1、体脂率是什么?

体脂率主要指的是身体内的脂肪含量占据整个体重的比例,也被人们称为是体脂百分比,体脂率的计算公式就是(脂肪重量÷体重)×100%,正常情况下衡量一个人是胖还是瘦,体脂率是一个十分重要的指标。

2、如何测体脂率?

(1)体脂称、手握仪器(电阻测试)

这两种都是属于通过仪器检测,不过这样的检测方法并没有大家想象中的那么准确,因为这种通过仪器检测体脂率的方法本身就要求大家的心率、水分、身体状态都处于比较合适的状态,这样测量才准确一点,而真实情况是好多人的状态都是不符合要求的,难免会出现一些误差,这也是可以理解的。

(2)体脂钳(夹)

?

使用体脂钳检测体脂率就要比上面一种仪器检测准确多,大家肯定没有想到这么小小的一个玩意竟然能够着么准确地检测出体脂率,而且不需要多少成本。好多运动员也是使用这种传统的方法检测自己的体脂率,体脂钳的测量方法也有多种,正常说明书上都会检测步骤,大家只需要按照步骤去做就可以了,不过需要持续测量并且记录下来做比较。


3、静水体重测量、DEXA扫描

这两种仪器就要精确很多了,是目前检测体脂率非常精密的两种仪器,出现的误差是非常小的,但是检测的费用十分昂贵,普通人没有必要使用这两种仪器检测。

如何测体脂率?相信大家读完上文后已经知道测体脂率的四种方法了,分别是体脂称和手握仪器、体脂钳检测、静水体重测量以及DEXA扫描,不过希望大家不要过分追求体脂率,并非是体脂率数值越低越好了,身上有一点脂肪还是可以对人体起到保护作用的。


原文转载:http://health.shaoqun.com/a/182071.html

跨境电商:https://www.ikjzd.com/

邓白氏集团:https://www.ikjzd.com/w/582

麦言:https://www.ikjzd.com/w/1456


核心提示:不少人听到体脂率这个名称的时候十分熟悉,但是让大家说出如何测体脂率的时候却没有几个人能够准确说出来,专业人士指出目前检测体脂率的方法主要有四种,分别是体脂称和手握仪器、体脂钳检测、静水体重测量以及DEXA扫描。 相信大家都是听说过体脂率这个名称的,特别是喜欢健身的朋友会经常测量一下自己的体脂率,来看看最近健身到底有没有效果,体脂率说白了就是身体里面脂肪含量所占比例,那么如何测体脂率?专业
抢注商标:https://www.ikjzd.com/w/1053
noon:https://www.ikjzd.com/w/259
菜鸟网络:https://www.ikjzd.com/w/1547
真正的facebook广告技巧:https://www.ikjzd.com/tl/96977
敏哥:一文教你读懂亚马逊的运营细节(3000字纯干货):https://www.ikjzd.com/home/120882
又一款亚马逊神器!Brand Analytics Reports该怎么用?:https://www.ikjzd.com/home/128498

一个可乐罐就可以装下全球所有的新冠病毒|新冠病毒|Sars-CoV-2|新冠肺炎

数学家克里斯蒂安·耶茨说:世界上所有的Sars-CoV-2病毒颗粒可以全部装进一个软饮料罐内。数学家克里斯蒂安·耶茨说:世界上所有的Sars-CoV-2病毒颗粒可以全部装进一个软饮料罐内。

  新浪科技讯 北京时间2月25日消息,2019年,国际病毒分类委员会声明,将新型冠状病毒命名为"SARS-CoV-2",新冠肺炎的正式命名为"COVID-19"。国际范围内病毒的命名由国际病毒分类委员会负责,而疾病的命名由世界卫生组织进行。而SARS-CoV-2这一名称也反映了新冠病毒与导致曾经SARS疫情的冠状SARS-CoV之间的相似性。

  当有人让我去计算一下全球Sars-CoV-2病毒颗粒的总体积时,坦白说,我自己也不知道这个答案是什么。我的妻子认为,总体积应该相当于奥林匹克游泳池的大小。接着,她又说:"要么就一茶匙那么点。"

  那么,到底怎样才能计算出全球Sars-CoV-2病毒颗粒总体积的近似值呢?

  幸运的是,我有一些关于这类大规模粗略估算的经验,我在"The Maths of Life and Death"一书中做过不少类似的估算。在我们踏上这个特殊的数字之旅之前,我首先要说明的是,这是基于最合理假设的近似值。当然,我也不否认,有些地方或许可以进一步改进。

  我们最好先从计算地球上有多少Sars-CoV-2病毒颗粒开始。为此,我们需要知道受病毒感染的总人数。(在这里,我们假设,人类才是该病毒最显著的携带者,而不是动物。)

  根据统计网站"用数据看世界"上提供的数据,每天,约有50万人新冠病毒检测结果为阳性。但是,我们也知道,还有很多人未计入其中,因为他们要么无症状,要么没有去做核酸检测,再或者有些国家的核酸检测尚未普及。

  通过使用统计和流行病学建模,健康指标与评估研究院(IHME)估计,每天的真实感染人数更接近300万。


  每一个受感染者当前所携带的病毒量(病毒载量)取决于他们受感染的时间。平均而言,病毒载量在受感染之后会逐渐上升,并在第六天达到峰值,之后稳定下降。

  在目前所有已感染的人群中,昨天刚被感染的人不会对病毒总量造成影响。而那些在一两天前被感染的人会对病毒总量造成比较显著的影响,而三天前被感染的人会对病毒总量造成更为显著的影响。平均而言,六天前被感染的人将表现出最高的病毒载量。然后,七天、八天或九天乃至更长时间前被感染的人,对病毒总量的影响会依次递减。

  最后,我们需要知道,人们在感染期间任何时候所携带的病毒颗粒数量。鉴于我们已经大概了解,病毒载量如何随着时间而变化,我们可以估算出病毒载量的峰值。一项尚未发表的研究对受感染猴子的一系列不同组织的单位克重病毒颗粒数量进行了分析,并按比例放大,以代表人类的组织。他们的粗略估计显示,峰值病毒载量包含的病毒颗粒数量在10亿到1000亿之间。

  我们不妨取其中的一个几何平均值,也就是10亿。如果将前几天每一天被感染的这300万人(假设每天300万人的感染率保持不变)所携带的病毒量的颗粒数全部加起来,我们会得到这样一个结果:在任何时候,全球大约有20万万亿(2x10 的17次方)个病毒颗粒。

  20万万亿,听起来像是一个天文数字。的确,地球上的沙粒数量也不过就这么多。但是,我们最终要计算的是体积,而Sars-CoV-2病毒颗粒又极其微小。Sars-CoV-2病毒颗粒的直径大约在80到120纳米之间。一纳米相当于十亿分之一米。具体来说,Sars-CoV-2病毒颗粒的半径大约是人类头发丝半径的千分之一。同样的,在接下来的计算中,我们对病毒颗粒的直径也取一个平均值,即100纳米。


  假设Sars-CoV-2病毒颗粒的半径为50纳米,那么单个球形病毒颗粒的大小为523000立方纳米。

  将这个超迷你体积乘以我们之前得出的庞大颗粒数量值,然后转换为我们比较熟悉的体积单位,我们可以得到所有Sars-CoV-2病毒颗粒的总体积大约为120毫升!但是,假如我们希望把这些病毒颗粒全部放到一个地方,那么,我们需要知道,球体是没有办法紧密地堆积在一起的。

  比如超市里的橘子堆。你可以看到,橘子之间有很多空隙。实际上,尽量减少空隙的最佳办法是一种称为"球密堆积"的方案。在这个方案下,空隙占总体积的26%。于是,我们的Sars-CoV-2病毒颗粒总体积便增加到160毫升,可以轻松地分装到六个子弹杯中。哪怕是取颗粒直径的上限(120纳米),再算上棘突蛋白的大小,所有的Sars-CoV-2病毒颗粒仍未必可以塞满一个可乐罐。

  计算结果表明,Sars-CoV-2病毒颗粒的总体积在我妻子预测的一茶匙和一个游泳池大小之间。回想去年,这些小小的病毒曾让全世界陷入混沌,让无数人失去至亲。然而,所有这些病毒加起来却不及一罐可乐大小,实在令人感慨万千。(匀琳)

原文转载:http://tech.shaoqun.com/a/350766.html

跨境电商:https://www.ikjzd.com/

naver:https://www.ikjzd.com/w/1727

跨境通电子商务平台:https://www.ikjzd.com/w/1329.html


数学家克里斯蒂安·耶茨说:世界上所有的Sars-CoV-2病毒颗粒可以全部装进一个软饮料罐内。  新浪科技讯北京时间2月25日消息,2019年,国际病毒分类委员会声明,将新型冠状病毒命名为"SARS-CoV-2",新冠肺炎的正式命名为"COVID-19"。国际范围内病毒的命名由国际病毒分类委员会负责,而疾病的命名由世界卫生组织进行。而SARS-CoV-2这一名称也反映了新冠病毒与导致曾经
bap:https://www.ikjzd.com/w/1492
coles:https://www.ikjzd.com/w/2506
亚马逊t恤:https://www.ikjzd.com/w/1932
TikTok爆红记:"一夜成名"听起来都太慢了 :https://www.ikjzd.com/home/123301
跨境电商行业属性就是加班?不加班就没前途?:https://www.ikjzd.com/home/128944
流量井喷!快抢马来西亚、泰国跨境100+曝光资源!:https://www.ikjzd.com/home/21227

苏宁退出足球倒计时!收最新报价:8亿欧元+奖金求购国米,卖吗?_江苏

原标题:苏宁退出足球倒计时!收最新报价:8亿欧元+奖金求购国米,卖吗?

苏宁与BC Partners的谈判继续进行,根据意大利媒体慢镜头最新消息,BC Partners提出8亿欧外加奖金收购国米的大部分股份,据悉苏宁即将在近期回应。同时,外媒也关注到苏宁正在0价转让江苏苏宁。或许,苏宁退出足球已经进入倒计时。

本赛季不断传出苏宁将卖掉国米的消息,之后该消息坐实。苏宁集团与BC Partners已经谈判了一段时间,不过并未达成一致。目前的国米状况不错,有望赢得本赛季意甲冠军,从此王者归来。苏宁方面入主国米后,成绩提升比较明显,虽然并未迅速一飞冲天,但崛起势头明显,目前在国内赛场的成绩已经可以让人满意。

不过,因为各种原因,苏宁不会再玩足球了。卖掉国米与江苏队或许是大概率事件。当然和0价转让江苏队不同,国米自然还是有一定市场影响力的,因此苏宁期待卖出高价。2016年6月7日,苏宁体育获得国米68.55%的股份,至此,首支又中国资本控制的欧洲豪门足球俱乐部诞生,随后张康阳成为国际米兰俱乐部历史上最年轻的掌门人。

如今,BC Partners提出了最新的报价,具体是:8亿欧外加奖金收购国米的大部分股份,这比苏宁抄底国米的时候价格提升明显。是否达到苏宁的预期,近期将有答案。报道称,苏宁方面会在近期正式回应,而且BC Partners收购的兴趣比以往更加浓厚。这也是基于国米的成绩。

外媒还关注,苏宁也即将卖掉江苏,而足球产业已不在苏宁的计划中。现在,我们或许要说,苏宁退出足球圈,已经进入倒计时。返回搜狐,查看更多

责任编辑:

原文转载:http://sport.shaoqun.com/a/447739.html

跨境电商:https://www.ikjzd.com/

hemingway:https://www.ikjzd.com/w/2344

ishare:https://www.ikjzd.com/w/2308


原标题:苏宁退出足球倒计时!收最新报价:8亿欧元+奖金求购国米,卖吗?苏宁与BCPartners的谈判继续进行,根据意大利媒体慢镜头最新消息,BCPartners提出8亿欧外加奖金收购国米的大部分股份,据悉苏宁即将在近期回应。同时,外媒也关注到苏宁正在0价转让江苏苏宁。或许,苏宁退出足球已经进入倒计时。本赛季不断传出苏宁将卖掉国米的消息,之后该消息坐实。苏宁集团与BCPartners已经谈判了一段
anker:https://www.ikjzd.com/w/1027
淘粉:https://www.ikjzd.com/w/1725
周宁:https://www.ikjzd.com/w/1647
亚马逊One Vendor计划的背后,VC和SC卖家必懂这几点!(附图文实操):https://www.ikjzd.com/home/18197
英国脱欧对谁影响最大?70%的英国卖家将选择海外销售!:https://www.ikjzd.com/home/15004
每日新闻|卡塔尔电商发展中:半年内出现60多个电商平台:https://www.ikjzd.com/home/138573

2021年2月24日星期三

忍无可忍!詹姆斯保罗领衔 众球星发声痛批:荒谬 愚蠢 恶心_德文·布克都

原标题:忍无可忍!詹姆斯保罗领衔 众球星发声痛批:荒谬 愚蠢 恶心

北京时间2月24日上午,本赛季全明星赛的替补名单出炉,引发媒体和球迷的热议。其中,西部的全明星替补球员如下:保罗、乔治、利拉德、米切尔、安东尼·戴维斯、戈贝尔、锡安。

这份名单产生后,就有不少球迷认为,德罗赞、德文·布克都应当进入到全明星的序列。

德罗赞本赛季在马刺打得相当不错,马刺也成为了西部前八的球队中,唯一一个没有球员入选全明星的球队。

而布克的落选,引起了更大的争议。的确,保罗的到来让本赛季的太阳脱胎换骨。太阳能够排名西部第四,离不开保罗的穿针引线,同样离不开布克的稳定发挥。

如今的布克,打球越来越合理。并且,他的跳投始终相当稳定,赛季至今,布克场均可以得到24.7分3.6篮板4.7助攻。布克目前执行的合同是和太阳签下的5年1.58亿。

从这个角度来看,无论是球队战绩,还是个人数据,布克似乎都应当成为本赛季全明星赛西部替补的一员。

对于布克的落选,众多NBA球星纷纷发声,表达不满。开拓者中锋努尔基奇在社媒上晒出了一个表情包,并写道:"德文·布克不在全明星名单上……"

队友保罗则通过ins为布克发声,几个小时之内,就收获了超过18万个赞。

追梦格林同样力挺布克:"布克不是全明星,这真是愚蠢的事……赶紧停下来吧!"

上面几位话说得还算轻的,下面几位的炮火重了不少。

帕金斯写道:"真是见鬼了!(德文)布克和(多曼塔斯)萨博尼斯没进全明星,这真的太荒谬了……该死的教练们应该为他们自己感到羞愧。"

开拓者当家后卫CJ·麦科勒姆写道:"我靠,这太扯了吧?这个兄弟真的是个冷血杀手,唉,这个世界太恶心了!"

詹姆斯同样在第一时间发声,为布克鸣不平,詹姆斯写道:"德文·布克是我们联盟中最不受尊重的球员!就这么简单。"

虽然众多球星都表达了不满,甚至语气相当强硬,但联盟一般情况下不会更改决定,当然了,如果浓眉缺席季后赛,西部还有空出一个位置,会属于布克吗?返回搜狐,查看更多

责任编辑:

原文转载:http://sport.shaoqun.com/a/446739.html

跨境电商:https://www.ikjzd.com/

sonar:https://www.ikjzd.com/w/215

inkfrog:https://www.ikjzd.com/w/668


原标题:忍无可忍!詹姆斯保罗领衔众球星发声痛批:荒谬愚蠢恶心北京时间2月24日上午,本赛季全明星赛的替补名单出炉,引发媒体和球迷的热议。其中,西部的全明星替补球员如下:保罗、乔治、利拉德、米切尔、安东尼·戴维斯、戈贝尔、锡安。这份名单产生后,就有不少球迷认为,德罗赞、德文·布克都应当进入到全明星的序列。德罗赞本赛季在马刺打得相当不错,马刺也成为了西部前八的球队中,唯一一个没有球
小马哥:https://www.ikjzd.com/w/1655
马士基航运:https://www.ikjzd.com/w/1296
DMM:https://www.ikjzd.com/w/2026
口述:女友短信通知我她失去了第一次短信通知第一次:http://lady.shaoqun.com/m/a/31788.html
eBay卖家注意!关于疫情期间的所有疑问都有官方回答了!:https://www.ikjzd.com/home/115197
怎样降低直通车PPC指数?:https://www.ikjzd.com/home/97919