您正在查看: farquer 发布的文章

HTML右上角气泡提示信息数量DEMO

<div class="wrap">
<div class="img"></div>
<div class="notice">1</div>
</div>

<div class="wrap">
<div class="img"></div>
<div class="notice">12</div>
</div>

<div class="wrap">
<div class="img"></div>
<div class="notice">13</div>
</div>
<style>
.wrap {
    width:50px;
    margin-bottom:10px;
    position:relative;
}
.img {
    width:50px;
    height:50px;
    border:1px solid #000;
}
.notice {
    width:20px;
    height:20px;
    line-height:20px;
    font-size:10px;
    color:#fff;
    text-align:center;
    background-color:#f00;
    border-radius:50%;
    position:absolute;
    right:-10px;
    top:-10px;
}
</style>

效果如下:

b2de9c82d158ccbf998f2d341ed8bc3eb1354189.jpg

转自 https://zhidao.baidu.com/hangjia/profile/xiii130

ON DUPLICATE KEY UPDATE

先看一段SQL例子:

INSERT INTO M_USERS (USER_ID,USER_NAME) VALUES ('1','2') ON DUPLICATE KEY UPDATE USER_NAME='3'

与普通的 INSERT INTO 语句相比,在结尾处多了 ON DUPLICATE KEY UPDATE ,上例表示的含义是:
如果 USER_ID 是主键或者有唯一约束时,如果插入的 USER_ID 不存在(库中没有 USER_ID 为 1 ),则执行 INSERT INTO 语句,插入 USER_ID 为 1,USER_NAME 为 2,但是若是如果库中有 USER_ID 为 1 的, 则执行 UPDATE 操作,语句相当于

UPDATE M_USERS SET USER_NAME='2' WHERE USER_ID='1'

如果是有原始记录执行插入操作,则显示影响行数为 1
1.jpg
(此时库中 USER_ID = 1 , USER_NAME = 2)


如果是执行的更新操作,则显示影响行数为 2
2.jpg
(此时库中 USER_ID = 1 , USER_NAME = 3)

需要注意的是,这种语法是MYSQL特有的语法, 不是SQL的语法。

QuartZ导致DB死锁问题

QuartZ使用会表锁,多个QuartZ项目链接一个DB导致死锁,问题很恶心

QuartZ使用的DB,当多个项目同时使用一个DB,很容易导致死锁

具体是'QRTZ_TRIGGERS'表,当使用'show OPEN TABLES where In_use > 0;' 语句查看被锁的表时,可以观察到表被死锁,控制台抛出异常是行锁导致超时。

控制台抛出异常信息如下:
error.jpg


通过以下SQL可以定位到导致死锁的位置

SHOW OPEN TABLES WHERE In_use > 0;

UNLOCK TABLES;

SHOW PROCESSLIST;

SHOW STATUS LIKE '%lock%';

SELECT * FROM QRTZ_TRIGGERS WHERE TRIGGER_STATE='ACQUIRED'

通过查询 SHOW PROCESSLIST; 定位到是哪个链接影响的数据库操作,等待其完成即可。

这样验证了猜想,是多个QuartZ同时执行一个DB导致的死锁问题


SELECT * FROM QRTZ_TRIGGERS WHERE TRIGGER_STATE='ACQUIRED' 可以发现问题导致之后,QRTZ_TRIGGERS 表不会自动更新,此时需要删除QuartZ的JOB信息, 以下是所能想到的删除记录,测试了下删除后自动生成QuartZ的表数据不会与之前的影响,类似于完整删除掉这个JOB。

START TRANSACTION; 

DELETE FROM QRTZ_CRON_TRIGGERS WHERE TRIGGER_NAME LIKE 'test_%'

DELETE FROM QRTZ_JOB_HISTORY WHERE JOB_NAME LIKE 'test_%'

DELETE FROM QRTZ_SIMPLE_TRIGGERS WHERE TRIGGER_NAME IN (SELECT TRIGGER_NAME FROM QRTZ_TRIGGERS WHERE JOB_NAME LIKE 'test_%')

DELETE FROM QRTZ_TRIGGERS WHERE JOB_NAME LIKE 'test_%'

DELETE FROM QRTZ_JOB_DETAILS WHERE JOB_NAME LIKE 'test_%'

DELETE FROM QRTZ_TRIGGER_HISTORY WHERE TRIGGER_NAME LIKE 'test_%'

COMMIT;

这城市那么空

bj_night.jpg

SGK-4000-GKCM2-US

SGK-4000-GKCM2-US

SGK-4000-GKCM2-US.jpg

Quick Fire STEALTH (Brown Switch)

Model Number
SGK-4000-GKCM2-US
Serial Number
SGK4000GKCM2US1154500192
Warranty Period
2015-11-23 - 2017-11-24

Continue Reading...

那种生活一辈子都不会腻吧

当我不再年轻了,我的儿女问我你年轻时曾经最爱的人是谁的时候。我不希望我要做的是翻出一本旧相册。我希望我能抬起手指着屋子另一头说:”她就坐在那里啊!“